OnMyDSeeAtAll
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору oshizelly Цитата: Но в результате хоткей перестает вообще выполнять какие бы то ни было действия... | Вы же ищете по части названия окна, директива SetTitleMatchMode в помощь: Код: SetTitleMatchMode, 2 ;SetTitleMatchMode, RegEx ;или #IfWinActive, Total Commander +F6::SendInput, +{F6} #IfWinActive ;#If ;или +F6::MsgBox, 262144, % " ", % "You pressed Shift+F6 NOT in TC", % 0.5 | Ещё варианты: Код: #IfWinActive, ahk_class TTOTAL_CMD +F6::SendInput, +{F6} #If ;#IfWinActive ;или +F6::MsgBox, 262144, % " ", % "You pressed Shift+F6 NOT in TC", % 0.5 |
Код: #If, WinActive("ahk_class TTOTAL_CMD") +F6::SendInput, +{F6} #If ;#IfWinActive ;или +F6::MsgBox, 262144, % " ", % "You pressed Shift+F6 NOT in TC", % 0.5 | Цитата: Что делать, чтобы скрипт работал во всех окнах, за исключением указанного? Или, ещё лучше, группы из нескольких указанных. | Группировать, и проверять можно по классу: Код: GroupAdd, MyGroup, ahk_class CalcFrame ; calculator GroupAdd, MyGroup, ahk_class TTOTAL_CMD ; tc +F6:: IfWinActive, ahk_group MyGroup MsgBox, 262144, % "Pressed Shift+F6", % "In a group exclusion", % 0.75 Else SoundBeep KeyWait, F6 Return | или проверять в условии по названию процесса: Код: +F6:: WinGet, WndProcName, ProcessName, % "A" If (WndProcName="totalcmd.exe" Or WndProcName="calc.exe") MsgBox, 262144, % "Pressed Shift+F6", % "In a group exclusion", % 0.75 Else SoundBeep KeyWait, F6 Return | по шаблону: Код: ; регистрозависимый шаблон MyGroup:="TOTALCMD|calc|notepad" +F6:: WinGet, WndProcName, ProcessName, A If RegExMatch(WndProcName, MyGroup) MsgBox, 262144, % "Pressed Shift+F6", % "In a group exclusion", % 0.75 Else SoundBeep KeyWait, F6 Return | или: Код: MyGroup:="TOTALCMD|calc|notepad" +F6:: WinGet, WndProcName, ProcessName, A If WndProcName~=MyGroup ;~= короткий эквивалент команды RegExMatch MsgBox, 262144, % "Pressed Shift+F6", % "In a group exclusion", % 0.75 Else SoundBeep KeyWait, F6 Return | всё тоже самое, только через функцию: Код: MyGroup:="TOTALCMD|calc|notepad" #If, CheckUp(MyGroup) +F6:: MsgBox, 262144, % "Pressed Shift+F6", % "In a group exclusion", % 0.75 KeyWait, F6 Return #If +F6:: SoundBeep KeyWait, F6 Return CheckUp(Pattern) { WinGet, WndProcName, ProcessName, A ;Return, RegExMatch(WndProcName, Pattern) Return, Result:=WndProcName~=Pattern ;или } |
|