Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать что компьютер простаивает n минут?


NeyroSpace ©   (2006-11-02 12:35:00) 

Вопрос уже был, но ответ ушел в архив((
Пока в голову приходит только глобальный хук на сообщения мыши и клавиатуры, но может есть еще какой-нибудь способ?


Desdechado   (2006-11-02 16:22:00) [1]

А кто-нибудь подумал о терминальных подключениях?
Там ведь работа может кипеть, вот только клава и мыша на терминале...


ПЛОВ   (2006-11-02 16:17:00) [2]


> есть ли юзер за компьютером

А если юзер спит?


NeyroSpace   (2006-11-02 14:34:00) [3]

>Gero ©   (02.11.06 14:26) [13]
Это тоже будет:
>8-E
Ближе Бандерлоги! (с)


NeyroSpace   (2006-11-02 14:32:00) [4]

>Maratvg   (02.11.06 14:22) [11]

К этому коду остается только добавить MessageBox:

+---------------------------------------------+
|Москвич! Твой компьютер простаивает без дела!|
|я его выключаю!                              |
|А.Чубайс                                     |
+---------------------------------------------+

Завершение работы Windows


Gero   (2006-11-02 14:26:00) [5]

> [10] NeyroSpace ©   (02.11.06 14:19)
> Мне нужно просто попробовать определить, есть ли юзер за
> компьютером.

Только анализировать изображение с web-камеры.


NeyroSpace   (2006-11-02 14:25:00) [6]

>[9]
Ты знал! (с)
)))


Maratvg   (2006-11-02 14:22:00) [7]

Для NT


type
 TGetLastInputInfo = function(var LastInputInfo: TLastInputInfo): BOOL; stdcall;

var
 GetLastInputInfo: TGetLastInputInfo = nil;

function WinNTIdleTime: Cardinal;
var
 LII: TLastInputInfo;
 LibHandle: THandle;
begin
 Result := 0;
 LibHandle := LoadLibrary(user32);
 @GetLastInputInfo := GetProcAddress(LibHandle, 'GetLastInputInfo');
 LII.cbSize := SizeOf(LII);
 if GetLastInputInfo(LII) then
   Result := LII.dwTime
end;


NeyroSpace   (2006-11-02 14:19:00) [8]

Нет ресурсами компьютера мне управлять не надо. Мне нужно просто попробовать определить, есть ли юзер за компьютером. Что-то типа статус N/A в ICQ.


Anatoly Podgoretsky   (2006-11-02 14:07:00) [9]

> NeyroSpace  (02.11.2006 13:53:07)  [7]

Конечно является, именно так работают шпионы.


Desdechado   (2006-11-02 14:02:00) [10]

Я считаю, что компьютер простаивает, если его мощность задействована менее, чем на N процентов (N=20, например).
При этом юзер может интенсивно возить мышь и давить кнопки, но простой есть простой.
А ведь может и наоборот (как сервер) - процессор закипает, винты дырчат, но клаву никто не трогает месяцами, а мыши вообще нет.

ЗЫ недавно наткнулся в Acrobat Reader
Если просто зажать левую кнопку мыши над страницей, то использование процессора почти моментально взлетает до 90-100%. И будет держаться, пока не отпустишь, даже если ничего больше не делать (т.е. мышь даже не двигать).


NeyroSpace   (2006-11-02 13:53:00) [11]

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


Орион   (2006-11-02 13:17:00) [12]

> [2] NeyroSpace ©   (02.11.06 13:03)

хук + таймер (лучше waitable)


Anatoly Podgoretsky   (2006-11-02 13:10:00) [13]

> NeyroSpace  (02.11.2006 13:03:02)  [2]

А вот это уже хуком пахнет.


Сергей М.   (2006-11-02 13:09:00) [14]


> NeyroSpace ©   (02.11.06 13:03) [2]



> Тогда спрошу так: Как узнать что пользователь не взаимодействует
> с компьютером по средством физических интерфейсов ввода
> типа клавиатура и мышь?


Ну вот эт другой коленкор)


> Пока в голову приходит только глобальный хук на сообщения
> мыши и клавиатуры


Вполне нормальная мысль.


Anatoly Podgoretsky   (2006-11-02 13:06:00) [15]

> NeyroSpace  (02.11.2006 12:35:00)  [0]

В отличии от Линукс, Виндоус никогда не простаивает.
А поскольку это конференция по Дельфи, то ни о каком Линуксе и речи быть не
может.


NeyroSpace   (2006-11-02 13:03:00) [16]

>Компьютер будучи включенным никогда не простаивает.
Спасибо! Я до этого как-то не додумался!

Тогда спрошу так: Как узнать что пользователь не взаимодействует с компьютером по средством физических интерфейсов ввода типа клавиатура и мышь?

При этом воздействие на компьютер через астральные, ментальные, вербальные, рудементальные, электрохимические, оптические, гальванические, духовные и прочие интерфейсы я не рассматриваю и рамках данной задачи считаю их воздействие пренебрежительно малым!


Сергей М.   (2006-11-02 12:42:00) [17]

Компьютер будучи включенным никогда не простаивает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо