1 (изменено: Anonymous, 2017-02-17 13:06:25)

Тема: AHK:присвоить переменной выделенный текст без использования clipboard?

С использованием clipboard это делается достаточно легко:

Clipboard=
Alt & E::
Send ^c
ClipWait
Clipboardd:= Clipboard
msgbox % Clipboardd
return

Но я не пойму, как это можно сделать без использования clipboard. Нашел на др. форумах, что в теории это делается при помощи SendMessage EM_GETSELTEXT. Только почему-то вот этот скрипт:

Alt & Q::
{
wParam = 0
lParam = ""
SendMessage EM_GETSELTEXT,wParam,lParam
msgbox lParam: %lParam%
}
Return

Не работает и выдает данный Msgbox при нажатии ALT+Q:
http://i.imgur.com/UPkb7yI.png

При использовании SendMessage 0x0D,wParam,lParam и SendMessage 0xB0,wParam,lParam также не работает.

И никак не могу найти, как это сделать без использования clipboard. Знатоки, подскажите, пожалуйста.

2 (изменено: Anonymous, 2017-02-17 13:02:24)

Re: AHK:присвоить переменной выделенный текст без использования clipboard?

Нашел одно решение после ~2 часов гугла:

Alt & R::MsgBox % getSelected()

getSelected() {
	ControlGetFocus, control, A
	VarSetCapacity(start, 4)
	VarSetCapacity(end, 4)
	SendMessage, 0xB0, &start, &end, %control%, A		;EM_GETSEL
	ControlGetText, string, %control%, A
	enc := (RegexMatch(string,"[\x{0100}-\x{FFFF}]")?"cp0":"utf-16") ;detect encoding of string
	string := SubStr(StrGet(&string,enc), pos := NumGet(start) + 1, NumGet(end) - pos + 1)
	return string
}

Работает в Notepad, но я пытаюсь сделать горячие клавиши для программы Discord. Когда я Нажимаю ALT & R в Discord, вот что я получаю в MsgBox:
http://i.imgur.com/Oa4uYbk.png

3 (изменено: Malcev, 2017-02-17 13:08:58)

Re: AHK:присвоить переменной выделенный текст без использования clipboard?

EM_GETSEL работает только с контролами edit.
В ноутпаде можно так:

f1::
ControlGet, text, selected,, Edit1, A
msgbox % text

4 (изменено: Anonymous, 2017-02-17 13:12:59)

Re: AHK:присвоить переменной выделенный текст без использования clipboard?

Malcev пишет:

EM_GETSEL работает только с контролами edit.

Вот что выдает AU3_Spy при выделении текста в Discord:
http://i.imgur.com/fs4cowB.png

Подскажите, в какую сторону рыть, чтобы начало работать в Discord, а не только в блокнотах?

5

Re: AHK:присвоить переменной выделенный текст без использования clipboard?

В сторону буфера обмена.

6

Re: AHK:присвоить переменной выделенный текст без использования clipboard?

Anonymous
Скажите пожалуйста, по какой причине вам не подходит буфер обмена?

AutoHotKey Version: 1.1.09.02
Не спеши, а то успеешь..