Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Бездействие всех пользователей на windows 7 (http://forum.oszone.net/showthread.php?t=334338)

KingShift 14-04-2018 15:23 2808857

Бездействие всех пользователей на windows 7
 
Добрый день, нужно реализовать отключение компьютера через 1 час бездействия в конце рабочего дня. Занес в планировщик на запуск от имени администратора, так как эта УЗ может входить в качестве пакетного задания. Иначе код не будет выполнятся если выйти из системы.

Код:

#include <Date.au3>
$idlesec = 3600000
Local $aRet, $iSave, $LastInputInfo = DllStructCreate ("uint;dword")
DllStructSetData ($LastInputInfo, 1, DllStructGetSize ($LastInputInfo))
DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
 
Do
  Sleep(200)
  $iSave = DllStructGetData ($LastInputInfo, 2)
  DllCall ("user32.dll", "int", "GetLastInputInfo", "ptr", DllStructGetPtr ($LastInputInfo))
  $aRet = DllCall ("kernel32.dll", "long", "GetTickCount")
Until ($aRet[0] - $iSave) > $idlesec
 
ConsoleWrite (_Now () & ' Выключение компьютера.' & @CRLF)
;Shutdown(1)

Беда в том, что он отслеживает бездействие УЗ администратора, а не пользователя(то есть УЗ которая его запустила). А нужно чтоб отслеживал время бездействия(движение мыши, нажатия клавиатуры) всех пользователей. Как это реализовать?

Iska 14-04-2018 16:19 2808873

KingShift, а чем не устраивает тот же самый Планировщик с условием запуска задачи при простое машины?

ShaddyR 15-04-2018 03:32 2808960

Iska, видимо, вопрос отсчета времени. Когда-то была аналогичная идея - перезагружать сервер в конце рабочего дня через N минут после затихания последнего пользователя, но реализовывал в cmd и на чем-то застопорился. Так что если будут мысли, как реализовать - может и реанимирую идею.

Казбек 15-04-2018 10:32 2808986

Iska,

Там же все равно это задание нужно привязывать к конкретному времени. Например, ставите запуск в 6 вечера и срабатывает он только если компьютер в простое заданное количество времени. К тому же, там есть пункт wait for idle и максимум можно задать два часа. Короче, у вас промежуток запуска максимум 1 час 59 минут. Если примерно в это время и происходит бездействие вашего пользователя - тогда ок. Если нет, то вам нужно создавать таких задач несколько, чтобы покрыть больший промежуток.
Почитайте, там как раз эти два пункта и обсуждаются. Подозреваю, что об этом и говорится в предыдущем сообщении:
Цитата:

Цитата ShaddyR
видимо, вопрос отсчета времени. »



Время: 14:52.

Время: 14:52.
© OSzone.net 2001-