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

Почему этот скрипт 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(tan(cube(2))))". Что я упускаю?

решение1

AutoHotkey видит математические символы и преобразует их в нажатия клавиш AutoHotkey. Например: + становится Shift. Таким образом, калькулятор берет 2 + 3 и интерпретирует это как число 2 и Shift + 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

Чтобы отправить Enterключ, вам необходимо заключить его в фигурные скобки, чтобы указать, что это ключ.

Пример:

Send {Enter}

Ваш вызов WinCloseтакже по какой-то причине закомментирован.

Связанный контент