
スクリプトを書きました:
^!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
も何らかの理由でコメントアウトされています。