Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.17;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
15-1156851900
Zhekson
2006-08-29 15:45
2006.09.17
File Access Denied


15-1156626983
Button1
2006-08-27 01:16
2006.09.17
Подскажите кнопку, которая бы фиксировалась в нажатом состоянии?


15-1156432552
bopmy
2006-08-24 19:15
2006.09.17
Стоимость исходных кодов - правовая защита


15-1156191530
Piter
2006-08-22 00:18
2006.09.17
Как запрятать алгоритм шифрования в программе?


15-1156408690
KygECHuK
2006-08-24 12:38
2006.09.17
StarTeam