radioamator16
Новичок
- Сообщения
- 39
- Репутация
- 0
Версия AutoIt: 3.
Описание:
Здравствуйте.
Есть вопрос по окнам.
Есть открытый процесс Notepad.exe и несколько открытых процессов Calc.exe.
Посоветуйте - как скриптом назначать окнам всех процессв Calc - свойство поверх всех окон - только при условии, что окно Notepad.exe - в настоящий момент активно и не свернуто ?
А во всех остальных случаях - чтобы все окна процесса Calc.exe - были бы позади всех окон (или невидимыми).
Имеющийся скрипт может выполнять эту операцию - только для одного процесса Calc.exe, но не для всех.
Возможно тут нужно использовать команду Winlist и как-то перебрать массив.
Примечания:
Описание:
Здравствуйте.
Есть вопрос по окнам.
Есть открытый процесс Notepad.exe и несколько открытых процессов Calc.exe.
Посоветуйте - как скриптом назначать окнам всех процессв Calc - свойство поверх всех окон - только при условии, что окно Notepad.exe - в настоящий момент активно и не свернуто ?
А во всех остальных случаях - чтобы все окна процесса Calc.exe - были бы позади всех окон (или невидимыми).
Имеющийся скрипт может выполнять эту операцию - только для одного процесса Calc.exe, но не для всех.
Возможно тут нужно использовать команду Winlist и как-то перебрать массив.
Код:
;~ If Not ProcessExists('win32calc.exe') Then Run('calc.exe')
;~ If Not ProcessExists('Notepad.exe') Then Run('Notepad.exe')
Global $iOnTop_Calc, $hWnd_Calc, $hWnd_Notepad
Do ; Ждем актививации окон Calc и Notepad
If Not $hWnd_Calc Then $hWnd_Calc = WinActive('[CLASS:CalcFrame]')
If Not $hWnd_Notepad Then $hWnd_Notepad = WinActive('[CLASS:Notepad]')
Sleep(50)
Until ($hWnd_Calc And $hWnd_Notepad)
While WinExists($hWnd_Notepad)
If WinActive($hWnd_Notepad) Then
If Not $iOnTop_Calc Then $iOnTop_Calc = WinSetOnTop($hWnd_Calc, '', 1)
Else
If $iOnTop_Calc And WinSetOnTop($hWnd_Calc, '', 0) Then $iOnTop_Calc = 0
EndIf
Sleep(50)
WEnd