Цель этого простого сценария - обнаружить интервал простоя, когда конкретная программа находится в фокусе, а затем отправить простое нажатие клавиши, когда этот интервал простоя прошел. Я запускаю этот скрипт на 4 компьютерах и получаю неожиданные результаты. Некоторые ПК сворачивают окно при запуске скрипта. Другие ПК запускают его как положено. Сценарий идентичен на каждом ПК.
Я вызываю этот сценарий, щелкая правой кнопкой мыши по сценарию (то есть не запускаю его скомпилированную exe-версию). Запуск его от имени администратора, по-видимому, позволяет добиться лучших результатов на некоторых клиентах, для одного это не имеет значения и сводит окно к минимуму.
Как уже говорилось, на некоторых компьютерах скрипт работает так, как задумано. Там нет сообщений об ошибках, это просто заставляет мое окно свернуть. Ничто в этом коде, на мой взгляд, не должно вызывать сворачивание окна.
#Persistent
SetTimer, Timer_check,3000
Timer_check:
if WinActive("ahk_exe gta5.exe")
{
if (A_TimeIdlePhysical > 31301 && WinActive("ahk_exe gta5.exe")) {
Gosub, keepActive
ToolTip, We're currently idle TimeIdle is %A_TimeIdle% and TimeIdlePhysical is %A_TimeIdlePhysical%
sleep 1000
ToolTip
}
if (A_TimeIdle < 31301) {
ToolTip
}
}
return
keepActive: ; keep active sub.
if WinActive("ahk_exe gta5.exe")
{
Send, {` down} ; Press the ` key to keep us active. It holds the key for 0.2 seconds.
Sleep 200
Send, {` up}
}
return```