Autohotkey: объединение / объединение двух скриптов в один скрипт (#if WinActive, 2 действия) - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть 2 сценария, которые я хочу объединить в один файл, однако при их объединении выполняется только первый:

Сценарий 1:

#if WinActive("ahk_exe program.EXE")
#Persistent
Loop
{
WinWaitActive, Wizard
Send, !{F4}
}

Return

Скрипт 2:

#if WinActive("ahk_exe program2.EXE")

#Persistent
Loop
{
    WinWait, ahk_class bosa_sdm_Mso96
    ; IfWinNotActive,  ahk_class bosa_sdm_Mso96, ,WinActivate, ahk_class bosa_sdm_Mso96
    ; WinWaitActive, ahk_class bosa_sdm_Mso96
    ; Sleep, 0
    ControlMove, RichEdit20W6, 20, 850, 750, 25   ;Adress box
    ControlMove, SysTreeView321, , , 800, 700
    ControlMove, TreeViewCFParent1, , , 1000, 700
    ControlMove, SysTreeView322, , , 800, 700
    ControlMove, TreeViewParent1, , , 760, 940
    WinMove, ahk_class bosa_sdm_Mso96, , 600, 50, 1000, 900 ; 900 width
}

Return

Я попытался удалить или изменить расположение "#Persistent", "Loop", "Return" .. или добавить #if в концекаждого сценария .. все еще только первый выполняется .. Даже при попытке # Включить первый сценарий во второй выполняется только первый.Может быть, это нужно "что-то еще" или что-то .. не уверен ..

1 Ответ

0 голосов
/ 03 декабря 2018

Директива # If используется только для создания контекстно-зависимых горячих клавиш и горячих строк.

Если вы используете WinWait или WinWaitActive Сценарий ожидает, пока (первое) окно не появится или не станет активным, и больше не перемещается, чтобы переместить второе окно.

Без WinWait загрузка сценария ЦП высока.

Чем лучшерешение в этом случае SetTimer :

#Persistent
SetTimer, Close_Move_Windows, 500 
return

Close_Move_Windows: 
IfWinActive, Wizard
    WinClose
IfWinExist, ahk_class bosa_sdm_Mso96
{
    WinGetPos, X, Y, Width, Height, ahk_class bosa_sdm_Mso96
    If (X != 600 || Y != 50 || Width != 900 || Height != 1000) ; "!" means "NOT" and "||" means "OR"
    {
        ControlMove, RichEdit20W6, 20, 850, 750, 25   ;Adress box
        ControlMove, SysTreeView321, , , 800, 700
        ControlMove, TreeViewCFParent1, , , 1000, 700
        ControlMove, SysTreeView322, , , 800, 700
        ControlMove, TreeViewParent1, , , 760, 940
        WinMove, ahk_class bosa_sdm_Mso96,, 600, 50, 900, 1000 ; 900 width
    }
}   
Return
...