1 (изменено: avens, 2013-07-14 11:35:15)

Тема: AHK: Вставка текста возле курсора

Какие можно использовать способы, что бы из переменной, вставить текст возле мигающего курсора, минуя буфер обмена и посылку клавиш? Для того, что бы не смогли перехвачивать текст, различные кейлоггеры и прочие программы.

Также еще надо получать выделенный текст в переменную, тоже минуя буфер обмена.

2

Re: AHK: Вставка текста возле курсора

Для Edit возможно это поможет:

var = text

1::  
ControlGetFocus, Control, A
SendMessage, 0xC2, , &var, % Control, A
return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Вставка текста возле курсора

Для Edit поможет, но нужно еще и в тех контролах где не известен ClassNN, или проще сказать для всех контролов в которых можно печатать текст.

4

Re: AHK: Вставка текста возле курсора

Вот так можно для любого контрола:

string := "Сообщение"
F11::
   ControlGetFocus, Control, A
   Loop, parse, string
      PostMessage, WM_CHAR := 0x102, Asc(A_LoopField),, % Control, A
   return

Не факт, что поможет против кейлоггера, т. к. можно перехватывать любые сообщения.
Получать выделенный текст в переменную, минуя буфер обмена, в общем случае не получится, нужно писать код для каждого конкретного контрола.

serzh82saratov пишет:

SendMessage, 0xC2, , &var, % Control, A

serzh82saratov, в таких случаях лучше расшифровывать, что означают магические цифры "0xC2".

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

5 (изменено: serzh82saratov, 2013-07-15 06:03:58)

Re: AHK: Вставка текста возле курсора

teadrinker пишет:

Получать выделенный текст в переменную, минуя буфер обмена, в общем случае не получится, нужно писать код для каждого конкретного контрола.

Недавно сам искал ответ на этот вопрос. Как же всё таки винда по Ctrl+C всегда получает текст? Или тут стандартное сообщение типа CopyClipboard, а приложения его уже обрабатывают каждый по своему?

http://social.msdn.microsoft.com/search … =Clipboard

Clipboard.SetDataObject(textBox1.SelectedText)

и что тут за метод SelectedText?

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

6

Re: AHK: Вставка текста возле курсора

Стандартное сообщение — WM_COPY. Текст в буфер обмена помещает само приложение.

7

Re: AHK: Вставка текста возле курсора

teadrinker, благодарю работает!
Пробовал, Punto Switcher, своим дневником не перехвачивает, и еще один вид кейлоггера тож не перехвачивает. Может и другие программы не смогут. Во всяком случае если других вариантов нет, буду использовать этот.

Всем спасибо.

8

Re: AHK: Вставка текста возле курсора

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

string := "Сообщение"
F1::
ControlGetFocus, Control, A
Loop, parse, string
  PostMessage, WM_CHAR := 0x102, Asc(A_LoopField),, % Control, A
Sleep 500
ControlGetText, OutputVar, %Control%, A
MsgBox %OutputVar%

Здесь ControlGetText не работает, где не известен ClassNN, ибо там Control пуст.

9

Re: AHK: Вставка текста возле курсора

avens пишет:

Здесь ControlGetText не работает, где не известен ClassNN, ибо там Control пуст.

Не понял смысла сего высказывания. После выполнения кода

ControlGetFocus, Control, A

в переменной Control как раз и появляется ClassNN находящегося в фокусе контрола в активном окне. Если переменная пуста, возможно, что контролы нестандартные (как в Firefox, например), их Windows не понимает.

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

10

Re: AHK: Вставка текста возле курсора

Извиняюсь, надо было мне по конкретней сказать. Мне именно для таких нестандартных контролов как в Opera, Firefox и др. и нужно это решение.

11

Re: AHK: Вставка текста возле курсора

Текст из контролов этих браузеров получить в принципе можно, но решение будет меняться от версии к версии, т. к. иногда меняются их названия, заголовки и т. п. Получить же конкретно выделенный текст извне без посыла Ctrl + C вряд ли удастся.

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

12 (изменено: avens, 2013-07-15 19:39:15)

Re: AHK: Вставка текста возле курсора

Ясно. Ну зато со вставкой в эти контролы разобрались. Всем еще раз спасибо. Удачи!