1

Тема: AHK: Отмена выделения текста

Здравствуйте, коллеги!
Не могу решить задачу отмены выделенного текста в 150 строк, 8к символов, после копирования.

SendInput ^{vk41}
SendInput ^{vk43}
ClipWait 1
cB=%Clipboard%
MouseMove, x, y, 0
SendInput {LButton}
;KeyWait LButton
Sleep 32

На малых текстах работает. На относительно большом часто (1/10) не срабатывает SendInput {LButton}, и текст остаётся выделенным.
KeyWait LButton ничего не даёт.
Помогает только чудовищный Sleep 512, 256 мало.
Помогает SendInput {LButton 4}, но это для моего кода не приемлемо.
1. Существует ли способ отменить Ctrl+A кроме как SendInput {LButton}?
2. Что нужно изменить в коде, чтобы снятие выделения срабатывало не 9/10, а всегда?

2

Re: AHK: Отмена выделения текста

Думаю, тут всё зависит от элемента, в котором содержится текст.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Отмена выделения текста

В идеале я бы извлекал текст без использования костылей (эмуляция копирования текста в 'Clipboard' и т.д.) напрямую если окно позволяет:

F2::
SText := ""	; Очистить заранее переменную.
ToolTip
ControlGet, SText, Selected,, Edit1, A	; Выделенный текст в тек. окне.
If (SText = ""){
 MsgBox,,, Текст пуст!, 1
 Return
}
PostMessage, 0x0111, 32, 0,, A	; Снять выделение.
ToolTip, % SText,, -9999
Return
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

4

Re: AHK: Отмена выделения текста

teadrinker пишет:

всё зависит от элемента, в котором содержится текст

Это происходит, предполагаю, во всех текстовых редакторах. Вижу это в Notepad, Notepad++, Word, SciTE4AutoHotkey.
Вопрос превратился в теоретический, заплатку придумал.

5

Re: AHK: Отмена выделения текста

Если редактор использует стандартные для Windows элементы управления, то обычно для них существуют определённые оконные сообщения, моментально изменяющие выделение.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Отмена выделения текста

__Михаил__, спасибо.
Увы, далеко не везде работает. Например, не работает в Notepad++.

7

Re: AHK: Отмена выделения текста

У Scintilla есть для этого оконные сообщения.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui