1

Тема: AHK: Автозакрытие неактивных окон

Здравствуйте. При использовании PotPlayer часто приходится заходить в настройки. Для удобства применяю несколько скриптов, выполняющих одинаковые действия для разных ahk_class. Т.е. при смещении курсора из активного окна настроек, оно уходит на второй план и закрывается. Например:

loop {
WinWait, ahk_class Afx:63BF0000:b:00010003:01900011:00000000
IfWinNotActive, ahk_class Afx:63BF0000:b:00010003:01900011:00000000
WinClose, ahk_class Afx:63BF0000:b:00010003:01900011:00000000
}
return

закрывает плейлист,

loop {
WinWait, ahk_class #32770
IfWinNotActive, ahk_class #32770
WinClose, ahk_class #32770
}
return

закрывает сведения о файле и т.д.
Объеденить в один AHK не получается.
Просьба помочь с универсальным скриптом, который включит эти действия для различных ahk_class.

2

Re: AHK: Автозакрытие неактивных окон

Сейчас у Вас два отдельных цикла, в каждом из которых выполняются конкретные действия. А Вы сделайте один цикл, который вместо конкретных действий будет запускать поочерёдно две подпрограммы (команда GoSub). А уже в подпрограммах распишите конкретные действия.

3 (изменено: p.polena, 2021-10-10 23:30:05)

Re: AHK: Автозакрытие неактивных окон

ypppu, К сожалению не два цикла, а три-пять. С GoSub и т.п. не получалось, поэтому и прошу помочь со скриптом (пример аналогичный привести).

4

Re: AHK: Автозакрытие неактивных окон

Постоянно запущенные циклы использовать не советую - лишняя нагрузка на проц. Что мешает задействовать клавишу? Например LWin мало кому нужен, его можно заодно отключить заставив выполнять нужное вам действие.
В текущем варианте предлагаю сделать так:
1) Нажали LWin - скрипт проверил наличие запущенных окон.
2) Если они существуют - закрыть их.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

5 (изменено: p.polena, 2021-10-11 00:16:11)

Re: AHK: Автозакрытие неактивных окон

__Михаил__, смысл не задействовать клавишу (я и так клавишей или мышкой закрою), а автоматом при перемещении курсора из окна настроек. 3-5 циклов, которыми сейчас пользуюсь (см. примеры выше) абсолютно не гузят CPU. Понимаю, что можно обойтись одним скриптом, вместо нескольких, но не получается.

6 (изменено: __Михаил__, 2021-10-11 01:05:10)

Re: AHK: Автозакрытие неактивных окон

Не понятна сама суть, поэтому не могу посоветовать что либо ещё.
Может видеофрагмент записать? Тогда будет яснее.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7 (изменено: p.polena, 2021-10-11 02:28:44)

Re: AHK: Автозакрытие неактивных окон

__Михаил__, мои действия:

+ открыть спойлер

1. При просмотре нажимаю в плеере кнопку "своства файла".
2. Появляется меню со свойствами.
https://i.ibb.co/zhbHC1Q/1.jpg
3. При перемещении курсора из области этого меню на видео, оно становится неактивным (т.к. в Windows окно активируется наведением курсора) и закрывается без нажатия на "Закрыть".
И такое действие у меня с другими окнами меню с разными заголовками.
Пример кода для закрытия этого меню (Информация о воспроизведении):

loop {
WinWait, Информация о воспроизведении
IfWinNotActive, Информация о воспроизведении
WinClose, Информация о воспроизведении
}
return

Пример аналогичного кода для автозакрытия плейлиста:

loop {
WinWait, Плей-лист
IfWinNotActive, Плей-лист
WinClose, Плей-лист
}
return

Для одинакового действия с разными title (ahk_class) у меня постоянно активны несколько AHK.
Так вот у меня не получается совместить несколько AHK c разными title (ahk_class) в один скрипт.

8

Re: AHK: Автозакрытие неактивных окон

Попробуйте так:

Loop {
   WinExist("A")
   WinWaitNotActive
   WinGetClass, winClass
   if winClass in #32770,Afx:63BF0000:b:00010003:01900011:00000000
      WinClose
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Автозакрытие неактивных окон

Если закрываемые окна принадлежат одной программе, то можно так:


GroupAdd, GroupName, ahk_exe Имя.exe,,, ИмяОсновногоОкнаПрограммы

Loop {
	Sleep 10
	ifWinNotActive, ahk_group GroupName
		WinClose
}

10 (изменено: p.polena, 2021-10-11 09:49:01)

Re: AHK: Автозакрытие неактивных окон

Спасибо всем. Вариант teadrinker отлично работает.