
Ich habe ein Skript geschrieben:
^!c::
ClipSave := ClipboardAll
Send ^x
Run calc.exe
WinWaitActive Calculator
Send %clipboard%
Send Enter
Sleep 100
Send ^c
;WinClose
Send ^v
Clipboard := ClipSave
Es soll markierten Text automatisch berechnen, führt aber ständig seltsame Berechnungen durch. Beispielsweise ergibt „2+3“ etwas wie „reciproc(ln(tan(cube(2))))“. Was übersehe ich?
Antwort1
AutoHotkey erkennt die mathematischen Symbole und wandelt sie in AutoHotkey-Tastenanschläge um. Beispiel: + wird zu Shift. Der Rechner nimmt also 2 + 3 und interpretiert es als die Zahl 2 und Shift + 3.
Vergessen Sie Return
auch nicht, die Skripts am Ende zu platzieren. Dies könnte ebenfalls den zusätzlichen Datenmüll verursachen.
Sleeps
Ich habe auch einige hinzugefügt , es war selbst mit zu viel des Guten ClipWait
.
Hier ist das Skript.
+^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
Antwort2
Um den EnterSchlüssel zu senden, sollten Sie ihn in Klammern einschließen, um anzugeben, dass es sich um einen Schlüssel handelt.
Beispiel:
Send {Enter}
Aus irgendeinem Grund ist auch Ihr Aufruf WinClose
auskommentiert.