2016-11-07 1 views
-1

Мне нужен скрипт, который проверяет, когда пользователь нажимает alt + число между 0-9. Сценарий должен сохранять нажатый номер в переменной. Я знаю, что вы можете использовать что-то вроде: (псевдо код)AutoHotKey обнаружить цифровую клавишу

!1:: var = 1 
!2:: var = 2 
!3:: var = 3 
... 

, но как я могу проверить альт + номер нажмите клавишу? И как мне получить цифровую клавишу, нажав на переменную?

Примечание: Я хочу что-то вроде этого:

!number:: var = number 

Просто чтобы быть ясно, код, который я написал отлично работает, но мне интересно, если он может быть уплотнен до одной строки кода.

+0

Это именно то, что ваш код уже делает. Я не уверен, что вы спрашиваете. – 2501

+0

Я знаю, что мой код работает хорошо, но мне было интересно, могу ли я его сжать, как показано во втором примере. – user2173361

+0

Я думаю, что вы можете. Посмотрите в документации для команды Hotkey. – 2501

ответ

1

Это похоже на работу

остановить запущенный скрипт ключа F12

Loop, 10 
    HotKey, % "~*" A_Index - 1, KeyDetect 
return 

KeyDetect: 
    If (A_ThisHotkey = "") 
     Return 
    mods := "Alt" 
    prefix := "" 
    Loop, Parse, mods, | 
     if GetKeyState(A_LoopField) 
      prefix .= A_LoopField " + " 
    if (!prefix && !ShowSingleKey) 
     return 
    key := SubStr(A_ThisHotkey, 3) 
    if (key = " ") 
     key := "Space" 

    MsgBox, % prefix key ; Test Message (Result) 
return 

F12::ExitApp, 0 
+0

Это действительно работает как намеренный. Хотя это сложнее и дольше. Спасибо за тент. Я думаю, что для выполнения этой работы нет ни одного, ни двух строк кода. Однако это правильный абрикант и то, что я искал. – user2173361