1

Тема: AHK: Получение в переменную выделенного текста.

И снова здравствуйте!
Суть вопроса такова: Как можно получить выделенный текст в переменную!
Да, я знаю что вы предложите сделать симуляцию нажатия клавиш ctrl+C.

!1::
LastClipBoard := ClipBoard
Send, ^{vk**} ; не помню код клавиши
Result := ClipBoard
ClipBoard := LastClipBoard
msgbox % result

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

2

Re: AHK: Получение в переменную выделенного текста.

Если где угодно, то никак, если в определённых контролах, то надо конкретнее.

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

3

Re: AHK: Получение в переменную выделенного текста.

Но ведь как-то текст попадает в ClipBoard при копировании.

4

Re: AHK: Получение в переменную выделенного текста.

Где то бывает что и не попадает.
Каждая программа в своём не стандартном контроле решает это по своему.

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

5

Re: AHK: Получение в переменную выделенного текста.

tuma4ok пишет:

Но ведь как-то текст попадает в ClipBoard при копировании.

Программа его туда и помещает, получив от вас Ctrl-C.

6

Re: AHK: Получение в переменную выделенного текста.

Я имею ввиду в системе Windows. При нажатии клавиш ctrl+c помещает в буффер обмена. Может как-то можно симулировать эти действия? Без симуляции нажатия клавиш.

7 (изменено: serzh82saratov, 2015-07-08 21:28:24)

Re: AHK: Получение в переменную выделенного текста.

AutoHotkey в принципе предполагает разговор про Windows.
Ну есть какое то сообщение типа WM_COPY, хотя до конца не уверен что это тоже самое, только разницы нет, если программа и настроена его понимать, то она всё равно по такой или иной команде копирования, поместит текст в буфер.

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

8

Re: AHK: Получение в переменную выделенного текста.

Может я вас немного запутал. Можно чтобы помещало текст в буффер, главное чтобы без симуляции нажатий клавиш.

9

Re: AHK: Получение в переменную выделенного текста.

Понятно. Тоже задавался таким вопросом, но ответа не нашёл.

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

10

Re: AHK: Получение в переменную выделенного текста.

!1::
    MouseGetPos,,, WinUnderMouse, CtrlUnderMouse,
    SendMessage, 0x0301,,, %CtrlUnderMouse%, AHK_ID %WinUnderMouse%
    MsgBox, %Clipboard%
Return

Эврика! Нашёл вот такой пример, копирует текст без симуляции нажатий клавиш. Но если ничего не выделено, выдает старый результат. Может как-то сможете улучшить.

11

Re: AHK: Получение в переменную выделенного текста.

Но текст из браузера оно не получает. Странно..

12

Re: AHK: Получение в переменную выделенного текста.

Ну и ещё много какие приложения не понимают WM_COPY.

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

13

Re: AHK: Получение в переменную выделенного текста.

Не судьба сделать толковый переводчик. Ну что же, сделаю на старом методе.
1) Копируем текст в буффер обмена.
2) Нажимаем комбинацию клавиш.
Минус в том, что мы теряем старый буффер обмена.

14

Re: AHK: Получение в переменную выделенного текста.

ClipBoard := LastClipBoard

А это тогда что?

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

15

Re: AHK: Получение в переменную выделенного текста.

Ну так можно сделать, но ведь я делаю на другую комбинацию клавиш. А чтобы все было верно, нужно заранее скопировать в буффер обмена.

16

Re: AHK: Получение в переменную выделенного текста.

Ну а тут тогда что:

!1::
LastClipBoard := ClipBoard
Send, ^{vk**} ; не помню код клавиши
Result := ClipBoard
ClipBoard := LastClipBoard
msgbox % result
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: Получение в переменную выделенного текста.

Send, ^{vk**}

- я же писал что нельзя использовать симуляцию нажатия клавиш.

18

Re: AHK: Получение в переменную выделенного текста.

Ну так замените в этой цепочке

Send, ^{vk**}

на старый метод. Что это изменит?

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

19

Re: AHK: Получение в переменную выделенного текста.

tuma4ok пишет:

Я имею ввиду в системе Windows. При нажатии клавиш ctrl+c помещает в буффер обмена.

Помещает текст в буфер (с одной "ф") программа, в которой вы выделили текст. Не AutoHotkey, не Windows, а программа, где вы выделили. Для этого она как-то должна понять, что юзер от неё этого хочет. Для этого и нужен посыл Ctrl-C, WM_COPY или какой-то команды из меню этой программы либо её тулбара.