Форум: "Прочее";
Текущий архив: 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 в FalseCurrentIdleInterval 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.047 c