Почему этот сценарий AutoHotkey не работает?

Я записал сценарий:

^!c::
ClipSave := ClipboardAll
Send ^x
Run calc.exe
WinWaitActive Calculator
Send %clipboard%
Send Enter
Sleep 100
Send ^c
;WinClose
Send ^v
Clipboard := ClipSave

это, как предполагается, автоматически вычисляет выделенный текст, но это продолжает делать странные вычисления. Например, '2+3' выходит как что-то как "reciproc (ln (загар (куб (2))))". Wat - я пропавшие без вести?

1
задан 29.08.2009, 08:16

2 ответа

Для отправки клавиши Enter Вы захотите включить его в фигурные скобки, чтобы указать, что это - ключ.

Пример:

Send {Enter}

Ваш вызов к WinClose также комментируется по некоторым причинам.

1
ответ дан 12.12.2019, 10:50

AutoHotkey видит математические символы и превращает их в нажатия клавиш AutoHotkey. Например: + становится Сдвигом. Таким образом, калькулятор берет 2 + 3 и интерпретирует его как номер 2 и Сдвиг + 3.

Не забывать Return в нижней части сценариев, также. Это могло бы инициировать дополнительный спам также.

Я добавил некоторых Sleeps также, это обгоняло себя даже с ClipWait.

Вот сценарий.

+^c::
ClipSaved := ClipboardAll
SendInput ^x
Run calc.exe
WinWaitActive Calculator
clipboard = %clipboard%
SendInput {Raw}%clipboard%
SendInput {Enter}
Sleep 100
SendInput ^c
Sleep 100
ClipWait, 2
WinClose
SendInput %clipboard%
Clipboard := ClipSaved
Return
2
ответ дан 12.12.2019, 10:50

Теги

Похожие вопросы