為什麼這個 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也被註解掉了。

相關內容