Warum funktioniert dieses AutoHotkey-Skript nicht?

2498
RCIX

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 

Er soll markierten Text automatisch berechnen, führt aber immer wieder seltsame Berechnungen durch. Zum Beispiel ist '2 + 3' so etwas wie "Reziproc (ln (tan (cube (2))))". Was vermisse ich?

1
Eine Variante dieses Skripts kann den Text zur Berechnung an Google senden Matthew Lock vor 15 Jahren 1

2 Antworten auf die Frage

2
snitzr

AutoHotkey erkennt die mathematischen Symbole und wandelt sie in AutoHotkey-Tastenanschläge um. Zum Beispiel: + wird Shift. Der Rechner nimmt also 2 + 3 und interpretiert sie als Zahl 2 und Umschalt + 3.

Vergessen Sie auch nicht Returnam Ende der Skripte. Dies könnte auch den zusätzlichen Müll auslösen.

Ich fügte auch einige hinzu Sleeps, es kam sogar mit sich selbst voran ClipWait.

Hier ist das Skript.

+^c:: ClipSaved := ClipboardAll SendInput ^x Run calc.exe WinWaitActive Calculator clipboard = %clipboard% SendInput %clipboard% SendInput  Sleep 100 SendInput ^c Sleep 100 ClipWait, 2 WinClose SendInput %clipboard% Clipboard := ClipSaved Return 
1
John T

Um den EnterSchlüssel zu senden, müssen Sie ihn in geschweifte Klammern einschließen, um anzugeben, dass es sich um einen Schlüssel handelt.

Beispiel:

Send 

Ihr Anruf an WinClosewird aus irgendeinem Grund auch kommentiert.

Das hilft, aber jetzt macht es einfach Würfel (2) ... Ziemlich seltsam ... RCIX vor 15 Jahren 0
Möglicherweise möchten Sie auch `Send ` anstelle von ^ c verwenden. Ich hatte in der Vergangenheit Probleme damit. John T vor 15 Jahren 0
Das hat nicht wirklich geholfen ... RCIX vor 15 Jahren 0