Почему этот скрипт AutoHotkey не работает?

2057
RCIX

Я написал сценарий:

^!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» выглядит как что-то вроде «recroc (ln (tan (cube (2))))». Ват, я скучаю?

1
Вариант этого скрипта может отправить текст в Google для расчета Matthew Lock 15 лет назад 1

2 ответа на вопрос

2
snitzr

AutoHotkey видит математические символы и превращает их в нажатия клавиш AutoHotkey. Например: + становится Shift. Таким образом, калькулятор берет 2 + 3 и интерпретирует его как число 2 и Shift + 3.

Не забывайте Returnтакже и про сценарии. Это может также вызвать дополнительный мусор.

Я также добавил некоторые Sleeps, это было впереди даже с ClipWait.

Вот сценарий.

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

Чтобы отправить Enterключ, вам нужно заключить его в фигурные скобки, чтобы указать, что это ключ.

Пример:

Send 

Ваш звонок WinCloseтакже закомментирован по некоторым причинам.

Это помогает, но теперь это просто куб (2) ... Довольно странно ... RCIX 15 лет назад 0
Вы также можете попробовать использовать `Send ` вместо ^ c. У меня были проблемы с этим в прошлом. John T 15 лет назад 0
Это не очень помогло ... RCIX 15 лет назад 0

Похожие вопросы