1 (изменено: dredj, 2014-11-14 17:49:24)

Тема: AHK: Блокировака горячих клавиш

Хотел заморозить все хоткеи, когда активен определённое окно, вот так

#IfWinActive ahk_class Valve001
Suspend
Return

не получается, почему-то всегда suspend.

2 (изменено: test2test, 2014-11-14 17:53:57)

Re: AHK: Блокировака горячих клавиш

#IfWinActive ahk_class Valve001
bla-bla
#IfWinActive

3 (изменено: dredj, 2014-11-14 18:05:04)

Re: AHK: Блокировака горячих клавиш

test2test, тоже самое.

4 (изменено: test2test, 2014-11-14 18:08:17)

Re: AHK: Блокировака горячих клавиш

Первое было к тому что ifwinexist немного не то, второе к оформлению.

А так-то проще засунуть свои хоткеи внутрь #IfWinNotActive

5

Re: AHK: Блокировака горячих клавиш

test2test, с #IfWinNotActive тоже проблемы, перестают работать вообще некоторые хоткеи. Решил проблему повесив суспенд на хоткей.
Как вывести tooltip при переключения суспенда, типа "Suspend on" и "Suspend off"?

6

Re: AHK: Блокировака горячих клавиш

dredj пишет:

с #IfWinNotActive тоже проблемы, перестают работать вообще некоторые хоткеи.

Их нужно просто вывести из под #IfWinNotActive, например так:

#IfWinNotActive ahk_class Notepad
F10:: MsgBox, Эта горячая клавиша работает только когда не активен блокнот

#If
F11:: MsgBox, Эта горячая клавиша будет работать всегда

Или так:

F11:: MsgBox, Эта горячая клавиша будет работать всегда

#IfWinNotActive ahk_class Notepad
F10:: MsgBox, Эта горячая клавиша работает только когда не активен блокнот
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Блокировака горячих клавиш

teadrinker, Есть такой скрипт

  
XButton1::Space
XButton2::Ctrl
XButton1 & WheelUp::SendInput, {Home}
XButton1 & WheelDown::SendInput, {End}
XButton2 & MButton::SendInput, !{9}
XButton2 & RButton UP::SendInput, !{MButton}


#If IsShell_TrayWnd()

XButton1::Media_Play_Pause
XButton2::Media_Next

WheelDown::SoundSet, -5 
WheelUp::SoundSet, +5 

#If

IsShell_TrayWnd()   {
    Global ClassNN
    MouseGetPos, , , WinID, ClassNN 
    WinGetClass, WinClass, ahk_id %WinID%
    Return WinClass = "Shell_TrayWnd" ? 1 : 0
}

если в начале поставить условия #IfWinNotActive ahk_class Notepad то перестают работать следующие хоткеи

XButton2::Ctrl
XButton1::Media_Play_Pause
XButton2::Media_Next

Где ошибка?

8

Re: AHK: Блокировака горячих клавиш

Выполняется первое условие #IfWinNotActive ahk_class Notepad. Правильно будет:

#If !(WinActive("ahk_class Notepad") || IsShell_TrayWnd())
XButton1::Space
XButton2::Ctrl
XButton1 & WheelUp::SendInput, {Home}
XButton1 & WheelDown::SendInput, {End}
XButton2 & MButton::SendInput, !{9}
XButton2 & RButton UP::SendInput, !{MButton}

#If IsShell_TrayWnd()

XButton1::Media_Play_Pause
XButton2::Media_Next

WheelDown::SoundSet, -5 
WheelUp::SoundSet, +5 

#If

IsShell_TrayWnd()   {
    Global ClassNN
    MouseGetPos, , , WinID, ClassNN      
    WinGetClass, WinClass, ahk_id %WinID%
    Return WinClass = "Shell_TrayWnd" ? 1 : 0
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Блокировака горячих клавиш

Всё также не работает

XButton2::Ctrl

10

Re: AHK: Блокировака горячих клавиш

А как вы определили, что не работает?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Блокировака горячих клавиш

Зажал XButton2 и покрутил колёсико в браузере например или множественный выбор элементов в ФМ.

12

Re: AHK: Блокировака горячих клавиш

А в коде из поста #7 работает?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Блокировака горячих клавиш

Упс, сорри. Всё из-за моей невнимательности, забыл тильду, хотя тильда и была в основном коде который я использую, но тут не досмотрел. Всё заработало, спасибо, ещё раз извиняюсь.