1

Тема: AHK: Добавить большой текст в окно ввода

Вот есть задача вставить в поле ввода простыню текста например на 10кб, как это правильно сделать?
Реализовал через буфер:


FileRead, clipboard, text.txt
Send ^{vk56}

А без закидывая в буфер, напрямую, можно это как-то сделать? Через SendEvent понятно не вариант.

2

Re: AHK: Добавить большой текст в окно ввода

А откуда берётся текст? Считывается из файла или генерируется скриптом на лету, или как?

3

Re: AHK: Добавить большой текст в окно ввода

ypppu пишет:

А откуда берётся текст? Считывается из файла или генерируется скриптом на лету, или как?

Из файла, в примере text.txt.

4

Re: AHK: Добавить большой текст в окно ввода

Clipboard - это специальная переменная, жёстко связанная с буфером обмена. Просто используйте какую-нибудь свою произвольную переменную.

F3::
FileRead, MyVar, text.txt
Send, %MyVar%
Return

5

Re: AHK: Добавить большой текст в окно ввода

ypppu, вопрос не в том, Send и SendEvent даже с SetKeyDelay 0 будут очень долго вколачивать большой текст, например объемом больше 10кб. Поэтому вставлял его через буфер обмена, так всё это делается предельно быстро. Но всё же это костыль и вот можно как-то это реализовать не используя сенды и буфер?

6

Re: AHK: Добавить большой текст в окно ввода

задача вставить в поле ввода простыню текста например на 10кб

Send и SendEvent даже с SetKeyDelay 0 будут очень долго вколачивать большой текст, например объемом больше 10к
можно как-то это реализовать не используя сенды и буфер?

Если предварительно ничего не предпринято, AutoHotkey вставляет между командами паузы. Их можно отключить. См. SetKeyDelay и SetBatchLines. Возможно, есть ещё какие-то паузы, про которые я подзабыл. Поищите по форуму, как отключать встроенные паузы.

А ещё есть команда ControlSetText.

7

Re: AHK: Добавить большой текст в окно ввода

ypppu пишет:

Если предварительно ничего не предпринято, AutoHotkey вставляет между командами паузы. Их можно отключить. См. SetKeyDelay и SetBatchLines. Возможно, есть ещё какие-то паузы, про которые я подзабыл. Поищите по форуму, как отключать встроенные паузы.

Я пробовал с использованием SetKeyDelay 0 с файлом размером 110Кб, да так SendEvent работает быстро, но всё же не быстрее конечно вставки этого текста из буфера, но так делать абсолютно не вариант, после использования SetKeyDelay 0 и SendEvent во второй половине вставляемого текста сыпется уже мусор, как-то некоректно эта связка работает с большими объемами текста.
Но в любом случае спасибо за помощь, я так понимаю других вариантов кроме использования буфера или Sendа всё равно для моего случая нет.

8

Re: AHK: Добавить большой текст в окно ввода

ypppu пишет:

А ещё есть команда ControlSetText.

Спасибо, может подойдёт.