¿Por qué no funciona este script de AutoHotkey?

¿Por qué no funciona este script de AutoHotkey?

He escrito un guión:

^!c::
ClipSave := ClipboardAll
Send ^x
Run calc.exe
WinWaitActive Calculator
Send %clipboard%
Send Enter
Sleep 100
Send ^c
;WinClose
Send ^v
Clipboard := ClipSave

se supone que calcula automáticamente el texto resaltado, pero sigue haciendo cálculos extraños. Por ejemplo, '2+3' aparece como algo así como "reciproc(ln(tan(cube(2))))". ¿Qué me falta?

Respuesta1

AutoHotkey ve los símbolos matemáticos y los convierte en pulsaciones de teclas de AutoHotkey. Por ejemplo: + se convierte en Shift. Entonces la calculadora toma 2 + 3 y lo interpreta como el número 2 y Shift + 3.

No lo olvides Returntambién al final de los guiones. Esto también podría estar provocando la basura adicional.

También agregué algunos Sleeps, se estaba adelantando incluso con ClipWait.

Aquí está el guión.

+^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

Respuesta2

Para enviar la Enterclave, deberá encerrarla entre llaves para especificar que es una clave.

Ejemplo:

Send {Enter}

Su llamada a WinClosetambién está comentada por algún motivo.

información relacionada