Отправка Ctrl + K Ctrl + U не работает, Ctrl + K Ctrl + C работает

Я просто немного поигрался с AHK и подумал, что могу передать некоторые из моих макросов SSMS на аутсорсинг в AHK.

Теперь у меня проблема с довольно простым макросом:

;+++++ ALT + ScrollUp +++++
!WheelUp::
;##### SQL MANAGEMENT STUDIO #####
IfWinActive, Microsoft SQL Server Management Studio
{
    Send, {Control Down}ku{Control Up}
}

;+++++ ALT + ScrollDown +++++
!WheelDown::
;##### SQL MANAGEMENT STUDIO #####
IfWinActive, Microsoft SQL Server Management Studio
{
    Send, {Control Down}kc{Control Up}
}

Поэтому, если я прокручиваю вниз, нажимая клавишу Alt, я хочу, чтобы он отправлял Ctrl + K Ctrl + C в SSMS (выбор комментария). Это работает нормально, но если я хочу отправить Ctrl + K Ctrl + U (раскомментировать выделение), это только раскомментирует его в течение миллисекунды, прежде чем снова будет прокомментирован.

Теперь код не очень сложный, что мне не хватает?

Я уже пытался изменить горячую клавишу на Shift + Scrolling или Ctrl + Scrolling, тот же эффект. Я также попытался привязать его к обычной клавише, например Ctrl + 3 и Ctrl + 4, тот же эффект.


person Feroc    schedule 08.02.2012    source источник


Ответы (1)


Думаю, что если ставить возврат после каждой Wheelcommand, то заработает. Теперь он продолжит выполнение следующей команды (отменив исходную команду).

;+++++ ALT + ScrollUp +++++
!WheelUp::
;##### SQL MANAGEMENT STUDIO #####
IfWinActive, Microsoft SQL Server Management Studio
{
    Send, {Control Down}ku{Control Up}
}
Return

;+++++ ALT + ScrollDown +++++
!WheelDown::
;##### SQL MANAGEMENT STUDIO #####
IfWinActive, Microsoft SQL Server Management Studio
{
    Send, {Control Down}kc{Control Up}
}
Return

Сообщите мне, как это работает!

person Robert Ilbrink    schedule 08.02.2012
comment
Кстати, вам, возможно, придется приостановить это после отправки одной команды, поскольку прокрутка вверх / вниз инициирует несколько отправок ... - person Robert Ilbrink; 08.02.2012
comment
Спасибо за ответ. Я всегда думал, что вещи внутри определения горячих клавиш будут срабатывать, только если горячая клавиша нажата. Но когда я смотрю на это, там нет даже внутренней части горячей клавиши, так что это просто начальная точка. Спасибо за помощь, теперь это работает. - person Feroc; 09.02.2012