Тема: AHK: Ограничения в работе скрипта
Возможно ли сделать какие то ограничения на работу скрипта? Временные или на количество запусков вообще, или количество запусков одновременных?я
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Возможно ли сделать какие то ограничения на работу скрипта? Временные или на количество запусков вообще, или количество запусков одновременных?я
Можно.
Директива #SingleInstance - проверяет/ограничивает запуск дубликатов
Ну, а про число запусков, думаю это можно сделать программно.
Можно поподробнее о "программно"?
Ну скажем через другой скрипт, т.е. считать запуски правда надо использовать глобальные переменные, но я не знаю точно как, но знаю что можно.
Или же создать переменную окружения и туда писать число запусков и сравнивать уже в самом стартующем скрипте... вариантов много, а начальных условий мало.
App:="notepad.exe", AppCount:=3
Query:="select ProcessId from Win32_Process where Name='"App "'"
MsgBox, 262144, % " ", Run 10 notepad applications, 1
Loop, 10
{
Run, notepad.exe, % A_WinDir "\System32",, WinPID
WinWaitActive, % "ahk_pid"WinPID
ControlSendRaw, Edit1, % "Instance: "A_Index
. "`n`n"A_Hour ":"A_Min "."A_Sec
, % "ahk_pid"WinPID
}
MsgBox, 262144, % " ", Close all but the first tree., 1
For Key In ComObjGet("winmgmts:").ExecQuery(Query)
If % A_Index>AppCount
{
WinActivate, % "ahk_pid"Key.ProcessId
ControlSendRaw, Edit1
, % "`n`nClose instance: "A_Index
, % "ahk_pid"Key.ProcessId
WinClose, % "ahk_pid"Key.ProcessId
ControlClick, Button2, ahk_class #32770,,, 2
}
MsgBox, 262144, % " ", Done!, 1
Sleep, 1000
For Key In ComObjGet("winmgmts:").ExecQuery(Query)
{
WinClose, % "ahk_pid"Key.ProcessId
ControlClick, Button2, ahk_class #32770,,, 2
}
ExitApp
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться