我写了一个脚本:
^!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
也被注释掉了。