1

Когда я использую определенную программу (Dolphin), моя горячая клавиша Esc закрывает ее полностью, но я хочу другую функциональность для определенных (под) окон. До сих пор я использовал #IfWinActive в сочетании с GroupAdd.

Вот документация по команде #IfWinActive: https://autohotkey.com/docs/commands/_IfWinActive.htm
GroupAdd: https://autohotkey.com/docs/commands/GroupAdd.htm

Если бы команда GroupAdd позволила исключить несколько заголовков из параметра ExcludeTitle, я бы уже решил эту проблему. ExcludeTitle не принимает ahk_group.

Я надеюсь на что-то более элегантное, чем каждая горячая клавиша, содержащая IfWinNotActive ahk_group exceptions . Я хочу, чтобы быстрая клавиша работала везде в программе, за исключением нескольких отдельных (под) окон, поэтому я бы предпочел что-то вроде одной строки GroupAdd, AllOfTheProgramExceptExceptions, ahk_exe Dolphin.exe, exceptions или несколько строк GroupAdd, AllOfTheProgramExceptExceptions, ahk_exe Dolphin.exe, exception123 чем создание группы ahk_group для всех окон программы (которые я не знаю и которые со временем должны были бы добавить) за исключением исключений.

2 ответа2

2
WinGet, id, list, ahk_exe Dolphin.exe
Loop, %id%
{
this_ID := id%A_Index%
; WinGet, exStyle, exStyle, ahk_id %this_ID%
; If !(exStyle & 0x100)
        ; Continue
    GroupAdd, Dolphin_group_WithoutExceptions, ahk_id %this_ID%
WinGetTitle, title, ahk_id %this_ID%
IfInString, title, ExcludeTitle1
    GroupAdd, Dolphin_group_exception1, ahk_id %this_ID%
else
IfInString, title, ExcludeTitle2
    GroupAdd, Dolphin_group_exception2, ahk_id %this_ID%
else
    GroupAdd, Dolphin_group_ExceptExceptions, ahk_id %this_ID%
}
return


F1:: GroupActivate, Dolphin_group_exception1
F2:: GroupActivate, Dolphin_group_exception2
F3:: GroupActivate, Dolphin_group_ExceptExceptions
F4:: GroupActivate, Dolphin_group_WithoutExceptions
1

Я узнал, что параметр WinTitle GroupAdd принимает ahk_group, благодаря fab12. Я читал это несколько раз прежде, но я не понял их код / решение до дня или несколько позже.

GroupAdd, AllOfTheProgramExceptExceptions1, ahk_exe Dolphin.exe, , , exception1 ; Make a group of all of the program's windows excluding window 1. ahk_class & ahk_exe not accepted by ExcludeTitle parameter.
GroupAdd, AllOfTheProgramExceptExceptions, ahk_group AllOfTheProgramExceptExceptions1, , , exception2 ; Make a group consisting of the previous group excluding window 2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .