Если То Цикл в AutoHotkey для переключения между рабочими столами - PullRequest
1 голос
/ 30 июня 2019

Скажем, ^ RButton переключается на мой правый рабочий стол и ^ LButton на мой левый рабочий стол. Проблема в том, что всякий раз, когда я переключаюсь на правый рабочий стол, открывается раскрывающееся меню, потому что я использую правую кнопку мыши в качестве горячей клавиши. Чтобы решить эту проблему, я могу добавить sleep 500 и затем отправить {Escape}, чтобы выйти из выпадающего меню. Все идет нормально. Однако, если я теперь хочу переключиться с рабочего стола 1 на рабочий стол 5, я не могу просто делать 5 ^ RB-кнопок подряд, а вместо этого приходится ждать полсекунды между каждым кликом. Это раздражает! Буду признателен за любые идеи о том, как избежать необходимости ждать 500 миллисекунд между каждым кликом? Моя идея заключалась в том, чтобы работать с оператором if. Хотя я понятия не имею, как программировать один ... Это будет выглядеть так:

If ^RButton = True, go to right desktop, 
if after 500 miliseconds there were no further ^RButton clicks, 
then send, {Escape}. 
If there were ^RButton clicks, 
go to the right desktop and wait 500 miliseconds for another ^RButton click,
then send, {Escape}.

Было бы здорово, если бы кто-то мог преобразовать мой текстовый код в код AutoHotkey: D

1 Ответ

2 голосов
/ 30 июня 2019

Попробуйте это

^RButton:: SendEvent {LWin down}{LCtrl down}{Right down}{LWin up}{LCtrl up}{Right up} ; switch to next virtual desktop
^LButton:: SendEvent {LWin down}{LCtrl down}{Left down}{LWin up}{LCtrl up}{Left up}   ; switch to previous virtual desktop

EDIT:

Как автономный скрипт у меня работает.

Попробуйте также

^RButton:: 
    Send {LWin down}{Ctrl down}{Right}{LWin up}{Ctrl up}    ; switch to next virtual desktop
    SetTimer, CloseContextMenu, -50
return

^LButton:: Send {LWin down}{Ctrl down}{Left}{LWin up}{Ctrl up}  ; switch to previous virtual desktop

CloseContextMenu:
    KeyWait, Ctrl, L
    ; Sleep, 300
    Send {Esc}
return

https://www.autohotkey.com/docs/commands/SetTimer.htm

...