Как узнать количество windows определенной программы, которые открыты в AutoHotKey? - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок в AHK и хотел бы найти число windows определенной программы, открытой в любое время, и сохранить ее в переменной.

У меня есть скрипт, который открывает окно Opera, когда Я нажимаю клавишу блокировки заглавных букв, но мне бы хотелось, чтобы только три из них windows открывались одновременно, поэтому, когда открыто более трех Opera windows, и я нажимаю клавишу заглавных букв, ничего не происходит.

Мне также хотелось бы, чтобы кнопка блокировки заглавных букв никогда не использовала заглавные буквы (другими словами, чтобы состояние заглавных букв всегда было выключено)

Как мне это сделать?

1 Ответ

1 голос
/ 02 апреля 2020

Вы можете использовать WinGet с операцией Count (см. документы ), чтобы получить число windows, соответствующее определенному фильтру.

Вам нужно найти правильное фильтр конечно. Вы можете использовать утилиту Window Spy для того, что поставляется с AutoHotkey.

В этом случае я уже сделал это: вы увидите, что класс окна (ahk_class) в Opera windows равен Chrome_WidgetWin_1. Однако это было бы верно для Chrome, Chromium и др. c. а также, поэтому мы также должны отфильтровать для имени файла программы EXE (ahk_exe) из opera.exe. (Причина, по которой мы не просто фильтруем по ahk_exe, заключается в том, что мы не хотим включать такие элементы, как поле «есть доступные обновления» или любое другое не главное окно, которое Opera может открыть, Я думаю.)

Окончательный результат:

WinGet cnt, Count, ahk_exe opera.exe ahk_class Chrome_WidgetWin_1
MsgBox There are %cnt% Opera windows open
...