1 (изменено: robdin1578, 2019-02-21 17:18:36)

Тема: AHK: AltGR и комбинации клавиш с escape

Добрый День. Помогите пожалуйста
1) Хочу правым альтом +J,K,L,M сделать навигацию стрелок . RAlt у меня AltGr
Почему так не работает?

 <^>!sc24::Send {Down} 

2) Создал скрипты по escape+тильда выделить все и копировать все , все отлично работает .
Однако сам escape,когда он нужен ,теперь перестал работать . Что поменять,чтобы он стал работать?

 sc1 & sc29::
SendInput, {Ctrldown}a{Ctrlup}{Ctrldown}c{Ctrlup} 
return 

2

Re: AHK: AltGR и комбинации клавиш с escape

2. Добавь тильду (~) перед первой клавишей.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

3

Re: AHK: AltGR и комбинации клавиш с escape

sc29::SendInput % GetKeyState("Esc") ? "^a^c" : "{" A_ThisHotkey "}"

4 (изменено: robdin1578, 2019-02-21 17:16:48)

Re: AHK: AltGR и комбинации клавиш с escape

2 ) оба варианта работают, спасибо большое.
3) Позаимствовал еще такой код классный, по escape длительному нажатию и отпусканию ,закрывает окно(Alt+F4 эквивалент)
Прекрасно работает . Однако вместе со вторым кодом, не работает в одном ahk . Как их совместить ?

 ;20) удерживая ескейп закрыть окно
$Escape::                                               ; Long press (> 0.5 sec) on Esc closes window - but if you change your mind you can keep it pressed for 3 more seconds
    KeyWait, Escape, T0.5                               ; Wait no more than 0.5 sec for key release (also suppress auto-repeat)
    If ErrorLevel                                       ; timeout, so key is still down...
        {
            SoundPlay *64                               ; Play an asterisk (Doesn't work for me though!)
            WinGet, X, ProcessName, A
            SplashTextOn,,150,,`nRelease button to close %x%`n`nKeep pressing it to NOT close window...
            KeyWait, Escape, T3                         ; Wait no more than 3 more sec for key to be released
            SplashTextOff
            If !ErrorLevel                              ; No timeout, so key was released
                {
                    PostMessage, 0x112, 0xF060,,, A     ; ...so close window      
                    Return
                }
                                                        ; Otherwise,                
            SoundPlay *64
            KeyWait, Escape                             ; Wait for button to be released
                                                        ; Then do nothing...            
            Return
        }
        
        Send {Esc}
Return
 

5 (изменено: stealzy, 2019-02-22 13:26:23)

Re: AHK: AltGR и комбинации клавиш с escape

В заимствованном коде хоткей установлен так, что в момент нажатия физичекой клавиши Esc ее собственное нажатие в ОС не проходит.
Подумайте как это влияет на код выше.
Кстати, исправить можно, внеся изменение в функцию GetKeyState(), см. справку.