1

Тема: AHK: Открытие одного скрипа и закрытие других скриптов

Доброго времени суток!
Подскажите, как открыть определенный скрипт, например Script1 и одновременно завершить другие, Script2, Script3, Script4 и.т.д., и назначить все управление на клавишу F1., т.е. только один скрипт открывается и завершаются другие скрипты, не важно сколько открыто и все управление назначить в третьем (управляющим) скрипте на кнопку F1.
Р.S. Статья AHK: Остановка одного скрипта из тела другого, мне не помогла, т.к. там скрипты завершаются запуском одного и завершением другого скрипта, а мне надо назначить на определенную клавишу.

Заранее благодарю, за предоставление ответы!

2

Re: AHK: Открытие одного скрипа и закрытие других скриптов

DetectHiddenWindows, On
F1::
   Run, %A_WorkingDir%\Script1.ahk
   Sleep, 500
   Run, C:\Program Files\Script2.ahk ; полный путь задаётся если скипт для запуска лежит не там же где тот, что запускает
   Sleep, 500
   WinClose, %A_WorkingDir%\Script3.ahk ahk_class AutoHotkey
   Sleep, 500
   WinClose, C:\Program Files\Script4.ahk ahk_class AutoHotkey
   Return

%A_WorkingDir%, %A_ScriptDir%.

3

Re: AHK: Открытие одного скрипа и закрытие других скриптов

Grey, Огромное спасибо, все как надо заработало!!!:):):)

4 (изменено: VovanKaban, 2013-03-10 10:58:22)

Re: AHK: Открытие одного скрипа и закрытие других скриптов

Доброго времени суток!
     Подскажите, как  завершить другие скрипты ahk т.е. только один скрипт открывается и завершаются другие скрипты ahk, не важно сколько открыто закрываются все(или хотябы один)
Названия скриптов которые нужно закрыть, зарание не известны.
Или может есть команда которая завершает процесс, типа taskkill
Или может по маске *.ahk


Р.S. Статья AHK: Остановка одного скрипта из тела другого, мне не помогла, т.к. там скрипты завершаются запуском одного и завершением другого скрипта.

Заранее благодарю, за предоставление ответы!

5

Re: AHK: Открытие одного скрипа и закрытие других скриптов

VovanKaban пишет:

Или может есть команда которая завершает процесс, типа taskkill

Ну да, есть команда Process. http://www.script-coding.com/AutoHotkey/Process.html

6

Re: AHK: Открытие одного скрипа и закрытие других скриптов

Оставить запускной, остальные закрыть:

#Persistent

PID:=DllCall("GetCurrentProcessId")
query:="SELECT Handle FROM Win32_Process WHERE Caption='AutoHotkey.exe'"

If (oWMI:=ComObjGet("winmgmts:").ExecQuery(query)).Count>1
   For colItem In oWMI
      If colItem.Handle!=PID
         colItem.Terminate()

PID:=query:=oWMI:=""

; ...

Закрыть все:

query:="SELECT Handle FROM Win32_Process WHERE Caption='AutoHotkey.exe'"

For colItem In ComObjGet("winmgmts:").ExecQuery(query)
   colItem.Terminate()