Вопрос. Как в AutoIt проверить, заблокирован ли рабочий стол Windows?
Что я имею
Возьмем этот пример скрипта AutoIt. Он пингует URL-адрес в бесконечном цикле и сообщает время отклика в подсказке в трее.
While 1
$responsetime = Ping("www.google.com")
TrayTip("", $responsetime, 1)
sleep(5000)
Wend
Желаемый результат
Новый скрипт должен пинговать, только если рабочий стол не заблокирован. Но я не нашел надежного способа проверить это
While 1
$isLocked = secretFunctionIdontKnow
If $isLocked = false Then
Local $responsetime = Ping("www.google.com")
TrayTip("", $responsetime, 1)
EndIf
sleep(5000)
Wend
Совет. Функция WinExist("A")
кажется ненадежной. достаточно, потому что рабочий стол без каких-либо открытых окон будет возвращать 0 (= ложь) даже при разблокировке
WinGetTitle
... :-( - person Samoth   schedule 30.09.2013TaskSwitcherWnd
. Таким образом, вы можете просто увидеть, имеет ли результатWinGetClassList
эту запись в своей первой позиции... Это также будет верно, если вы используете{Alt}+{Tab}
для переключения программ, но я думаю, что это справедливый компромисс, чтобы не выполнять пинг при переключении программ, поскольку хорошо. - person Samoth   schedule 30.09.2013