Главная страница
    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.047 c
15-1156568417
begin...end
2006-08-26 09:00
2006.09.17
26 августа. С Днём рождения!


15-1156573533
Der Nechk@ssoff
2006-08-26 10:25
2006.09.17
файлы IMZ


2-1156659780
andy_hs
2006-08-27 10:23
2006.09.17
сделать программу невидимой (службой)


15-1156578153
начинающий
2006-08-26 11:42
2006.09.17
Если смешать жидкости с разными плотностями...


1-1154885014
anton773
2006-08-06 21:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский