Страница: 1 |
Нужно строковой переменной присвоить выделенный текст. Причем текст находится не в самой программе, а в любом другом приложении (Блокнот, Word, IExplorer и др.) Один способ я придумал: Private Function GetSelTextApplication() As String 'функция получает выделеннай текст Sleep(150) 'надеемся пользователь отпустил кнопку KeyEvent 17, KeyDown 'эмуляция Но как видно функция меняет содержимое буфера. Можно как нибудь поймать текст без Ctrl + C ? Помогите!
Страница: 1 |
Вопрос: Как получить выделенный текст из другой программы
Добавлено: 19.06.04 18:47
Автор вопроса: Mich | Web-сайт:
Clipboard.SetText "Sorry.." 'чистим
KeyEvent 67, KeyClick '
KeyEvent 17, KeyUp 'Ctrl + C
Sleep(150) 'ждем пока буфер сообразит
Dim clbVar As Variant
clbVar = Clipboard.GetText
SelTextApplication = CStr(clbVar)
End Function
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Mich
Вопросов: 4
Ответов: 7
Web-сайт:
Профиль | | #1
Добавлено: 19.06.04 18:53
И еще:
Как поменять раскладку в другой программе ?
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 19.06.04 19:53
Те нужен хэндл тектового поля откуда ты хочешь взять текст... как его получишь, все остальное - проще... Используем SendMessage + EM_GETSELTEXT/EM_GETTEXTEX
http://vbnet.ru/forum/show.aspx?id=46282
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 19.06.04 21:14
Ну ещё можешь сначала буфер в переменную сохранить, нажать Ctrl+C, с буфера в другую переменную, а потом буфер зделать такой как был из той переменной где его сохранил
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 20.06.04 00:33
Способ, предложенный HACKER'ом, работает лишь только тогда, когда нужное текстовое окно активно...
Номер ответа: 5
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #5
Добавлено: 20.06.04 00:50
У всех трёх по разному. Так что лучше уж через буфер. Оно конечно по ламерски, но если реальным кодом, то кодить долго.
Номер ответа: 6
Автор ответа:
Mich
Вопросов: 4
Ответов: 7
Web-сайт:
Профиль | | #6
Добавлено: 20.06.04 01:33
От переменной я отказался. Не всегда работает. Точнее очень редко.
Ну а как раскладку поменять? Пусть даже если я знаю hWnd текстбокса?
<p><font size="1">И еще как *.gif - анимацию в программе отобразить ?
</font></p>
качайте с сайта
<p><a href="http://q-mich.narod.ru/qwesetup.exe"><img border="0" src="http://q-mich.narod.ru/help.h1.gif" width="300" height="28"></a></p>
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 20.06.04 01:55
активизируй parent'a текст-бокса, если он имеет парента, то его парента и т.д. пока GetParent не уткнется в ноль... после чего SetActiveWindow/SetForegroundWindow меняешь раскладку, см. линк выше, и опять активизируешь прошлое окно... которое конечно же было предварительно записано в переменную с пом. GetActiveWindow/GetForegroundWindow... все...
Номер ответа: 8
Автор ответа:
Mich
Вопросов: 4
Ответов: 7
Web-сайт:
Профиль | | #8
Добавлено: 04.07.04 08:53
Ну так кто-нибудь знает как захватить выделенный текст с активного текстового поля ???
Да пусть хоть это пол программы займет!
Нужно очень!
Номер ответа: 9
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #9
Добавлено: 04.07.04 11:03
Ну дык ты пробуй... посмотри QDictonary/MyDic... там это используется... может поразбираешь эти проги... чего и найдешь интересного...