2015-01-11 3 views
1

В программе Autohotkey можно «вставить» текстовое содержимое без необходимости использовать буфер обмена?Как вставить блок текста без использования буфера обмена в Autohotkey

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

Я попытался с помощью метода буфера обмена и отправить «вставить» команду, но это также вызывает проблемы, так как я должен сохранить мое содержимое текущего буфера обмена и т.д. (слишком долго объяснять, не имеет отношение к моему вопросу.)

I прошел через документы, и я не могу найти что-либо по этому поводу, и мне было интересно, знаете ли вы, что вы ответили?

С уважением

+0

Вы хотите решить проблему сохранения буфера обмена и просто использовать это вместо этого. Возможно, вам придется использовать ClipboardAll для полного восстановления, а не только для буфера обмена для обычного текста. ClipboardAll сохранит все данные, поэтому у него не должно быть проблем, если это будет сделано правильно. – Nelson

ответ

0

Я предпочел бы прокомментировать вопрос, но не имеют достаточно очков ...

Если IDE поддерживает фрагменты кода. Возможно, Autohotkey (AHK) создает временный фрагмент в среде IDE. Отправьте команду, чтобы вставить этот фрагмент temp, а затем удалить фрагмент temp. Беспорядочное решение, но может работать.

+0

не может сделать это фрагментами, потому что я пытаюсь вставить целые блоки кода/функции/классы .. не просто несколько строк..и не все, что я хотел бы вставить, так или иначе поддерживается в фрагментах кода .. в любом случае я просто действительно нужно «вставить» внутренне объявленный буфер обмена? если нет ответа на этот вопрос – BrownChiLD

0

(То же, что и Oq01 не может комментировать) Если вы не хотите использовать буфер обмена, потому что хотите восстановить исходный контент буфера обмена, вы можете использовать предложение на странице http://ahkscript.org/docs/misc/Clipboard.htm#ClipboardAll: сохранить текущее содержимое буфера обмена в переменную, обновить буфер обмена, вставить его и восстановить исходное содержимое.

Возможно, ваша IDE поддерживает несколько буферов обмена, историю буфера обмена или список тегов, которые вы также можете использовать, если возможны макросы или скрипты из программы.

0

У вас не так много вариантов, когда дело доходит до этого, но у вас есть некоторые.

Варианты:

  • Сохранение/восстановление текущего буфера обмена, используя ClipboardAll
  • Использование ControlSetText
  • встроенную функцию вашей программы

Большую часть времени Буфер обмена является способ пойдите, поскольку у вас не будет потери данных при использовании ClipboardAll

Не все программы/Редакторы позволят вам использовать ControlSetText, так что это не может быть вариант, который вы можете использовать, но если вы являетесь редактором Edit Control, это стандартное управление окнами, которое вы, возможно, сможете его использовать.

Последний вариант Я не могу говорят, как мы не знаем программу, которую вы пытаетесь сделать это с ...

Учебник по Совершение простой multi Clipboard snippet's держатель

1

Насколько мне известно, не существует какой-либо внутренний буфер обмена в АХК. И использование таких команд, как ControlGetText, будет ошибкой, если у вас есть что-то другое, кроме текста, или если вы хотите сохранить форматирование.

Так я обычно выполнял такую ​​задачу.

#+c:: 
oCB := ClipboardAll ; save clipboard contents 
Send, ^c 
ClipWait,1 
SplashTextOn, 160, 20, Clipboard, New Clipboard Copied 
Sleep 2000 
SplashTextOff 
Return 
       ;Now, pressing Control-V pastes the new text, and can be used as often as desired 


#v::    ;And pressing Windows-V copies the old back to the clipboard 
ClipBoard := oCB   ; return original Clipboard contents 
ToolTip, Old Clipboard `nRestored 
Sleep 1000 
ToolTip 
oCB :=     ;Clears variable 
Return 

Это, в основном, то, что имел в виду и линсталист. Но, используя переменную ClipboardAll, вы должны иметь возможность сохранять что-либо в буфер обмена, включая форматирование, изображения и т. Д. За дополнительной информацией об этой команде вы можете узнать из http://www.autohotkey.com/docs/misc/Clipboard.htm. Кроме того, выкрикивайте pajenn на форумах AutoHotKey для семени этого кода. http://www.autohotkey.com/board/topic/39280-get-selected-text/

Смежные вопросы