1

Я делаю скрипт autohotkey для запуска выделенного текста через калькулятор, и мне нужно отправить содержимое буфера обмена в виде последовательности нажатий клавиш, поскольку калькулятор на самом деле не поддерживает вставку математической операции. Как это будет достигнуто?

4 ответа4

5

Вам нужно использовать такую команду, чтобы "напечатать" именно то, что находится в буфере обмена.

^+v::SendRaw %clipboard%

^+v означает ctrl+shift+v. Замените на желаемое сочетание клавиш. Посмотрите на этой странице, какие символы соответствуют каким клавишам-модификаторам.

1

Я исправил оригинальный сценарий, который вы написали здесь: https://superuser.com/questions/7271/most-useful-autohotkey-scripts/31282#31282 Теперь отлично работает в моей системе Vista.

Фрагмент кода, о котором идет речь, извлеченный из глубин Wayback Machine:

^!c::
ClipSave := ClipboardAll
Send ^x
Run calc.exe
WinWaitActive Calculator
Send ^v
Send {Enter}
Sleep 250
Send ^c
WinClose
Send ^v
Clipboard := ClipSave
return
1

Чтобы сопоставить Ctrl + K для отправки данных буфера обмена, например:

^k::Send %clipboard%
0

Отправка ctrl-v может сработать, если предположить, что ваше приложение действительно использует это для вставки, но многие этого не делают.

Другой вариант, похожий на параметры отправки выше, но без медлительности SendRaw и без интерпретации Send (и с некоторым улучшением по сравнению с проблемой застрявших клавиш-модификаторов):

;; Alt-Control v
SendInput,{Raw}%Clipboard%
SendInput,{Alt}{Ctrl} ;; Try to release modifier keys
return

Хотя иногда клавиши-модификаторы все еще застряли ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .