Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Простой компьютера.   Найти похожие ветки 

 
1519   (2006-08-30 14:37) [0]

Привет!!!
Подскажите, пожалуйста, можно ли через Delphi узнать простаивает компьютер или нет.
Заранее Спасибо!!!


 
Сергей М. ©   (2006-08-30 14:38) [1]

Нельзя.


 
1519   (2006-08-30 14:44) [2]

А если очень хочется.


 
Dmitrij_K   (2006-08-30 14:45) [3]

Что ты подразумеваешь под словом "простаивает компьютер"?


 
DiamondShark ©   (2006-08-30 14:47) [4]

А если очень хочется, то сначала сформулируй, что подразумевается под "простоем".
Потому что в общем случае компьютер простаивает только при выключенном питании.


 
1519   (2006-08-30 14:50) [5]

(3) Пользователь не вводит данных и не двигает мышь.


 
Сергей М. ©   (2006-08-30 14:53) [6]


> Пользователь не вводит данных и не двигает мышь


Но компьютер при этом не простаивает. ты знаешь об этом ?!


 
1519   (2006-08-30 15:05) [7]

Да знаю, что еще есть процессор который может быть загружен выполняющимися приложениями.
Но меня интересует то как узнать что пользователь не использует компьютер а просто ушел куда-нибудь.


 
ANB ©   (2006-08-30 15:07) [8]


> 1519   (30.08.06 15:05) [7]

Вешаешь глобальные хуки на мышу и клаву.
Пишешь логику, которая засекает паузы межды срабатываниями хука.
Всех делов то.


 
Dmitrij_K   (2006-08-30 15:09) [9]


> Но меня интересует то как узнать что пользователь не использует
> компьютер а просто ушел куда-нибудь.

он может в монитор смотреть


 
Ketmar ©   (2006-08-30 18:46) [10]

> [9] Dmitrij_K   (30.08.06 15:09)
монитор отключить. нефиг пялиться, если калвой и мышой не работаешь.


 
Anatoly Podgoretsky ©   (2006-08-30 20:27) [11]

1519   (30.08.06 14:44) [2]
Виндоус никогда не простаивает, это тебе надо на Линукс переходить.
А бездействие пользователя тоже не означает простоя, может он видео смотрит или инструкцию читает, вдумывается.


 
Германн ©   (2006-08-31 01:10) [12]


> Но меня интересует то как узнать что пользователь не использует
> компьютер а просто ушел куда-нибудь.

Опять Desdeshado прикалывается?


 
Virgo_Style ©   (2006-08-31 09:24) [13]

только что читал про какой-то IM, меняющий статус пользователя в зависимости от того, что видит веб-камера %-)


 
konrads   (2006-08-31 11:18) [14]

Это поможет :)

unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls;

type
 TfMain = class(TForm)
   IdleTimer: TTimer;
   lbWarning: TLabel;
   procedure FormCreate(Sender: TObject);
   procedure IdleTimerTimer(Sender: TObject);
   procedure FormShow(Sender: TObject);
 end;

var
 fMain: TfMain;

implementation

{$R *.dfm}

const
 IdleThreshold = 10;

procedure TfMain.FormCreate(Sender: TObject);
begin
 Application.ShowMainForm := false;
end;

procedure TfMain.IdleTimerTimer(Sender: TObject);
var
 LII : TLastInputInfo;
 CurrentIdleInterval : DWORD;
begin
 FillChar(LII, SizeOf(LII), 0);
 LII.cbSize := SizeOf(LII);
 Win32Check(GetLastInputInfo(LII));
 CurrentIdleInterval := GetTickCount - LII.dwTime;
 if CurrentIdleInterval > 1000*IdleThreshold then begin
   lbWarning.Caption := Format("Òû áåçäåëüíè÷àåø&# 252; óæå %d ñåêóíä",
     [CurrentIdleInterval div 1000]);
   if not Visible then
     Show;
 end else
   Hide;
end;

procedure TfMain.FormShow(Sender: TObject);
begin
 Left := 0;
 Top := 0;
end;

end.



У формы поставь Visible в False

 CurrentIdleInterval div 1000 - это время бездействия в секундах


 
Anton_K ©   (2006-08-31 11:24) [15]

GetLastInputInfo


 
konrads   (2006-08-31 11:29) [16]

Ещё наглядней так (visible у формы поставить True)


unit main;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls;

type
 TfMain = class(TForm)
   IdleTimer: TTimer;
   lbWarning: TLabel;
   procedure IdleTimerTimer(Sender: TObject);
   procedure FormShow(Sender: TObject);
 end;

var
 fMain: TfMain;

implementation

{$R *.dfm}

procedure TfMain.IdleTimerTimer(Sender: TObject);
var
 LII : TLastInputInfo;
 CurrentIdleInterval : DWORD;
begin
 FillChar(LII, SizeOf(LII), 0);
 LII.cbSize := SizeOf(LII);
 Win32Check(GetLastInputInfo(LII));
 CurrentIdleInterval := GetTickCount - LII.dwTime;
 lbWarning.Caption := Format("Ты бездельничаешь уже %d секунд",
 [CurrentIdleInterval div 1000]);
end;

procedure TfMain.FormShow(Sender: TObject);
begin
 Left := 0;
 Top := 0;
end;

end.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.229 c
1-1155024509
npr2
2006-08-08 12:08
2006.09.17
обмен сообщениями между окнами в приложении


2-1156509969
XTD
2006-08-25 16:46
2006.09.17
Как поставить курсор?


15-1156532175
AntiUser
2006-08-25 22:56
2006.09.17
А что мне надо ...


2-1156611135
redlord
2006-08-26 20:52
2006.09.17
gettime без секунд


2-1156676861
XTD
2006-08-27 15:07
2006.09.17
Автозагрузка (регистр)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский