
Я написал сценарий:
^!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
также по какой-то причине закомментирован.