Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как получить выделенный текст из другой программы Добавлено: 19.06.04 18:47  

Автор вопроса:  Mich | Web-сайт: q-mich.narod.ru

Нужно строковой переменной присвоить выделенный текст.

Причем текст находится не в самой программе, а в любом другом приложении (Блокнот, Word, IExplorer и др.)

Один способ я придумал:

Private Function GetSelTextApplication() As String 'функция получает выделеннай текст
            Clipboard.SetText "Sorry.." 'чистим

            Sleep(150) 'надеемся пользователь отпустил кнопку

                KeyEvent 17, KeyDown  'эмуляция
                KeyEvent 67, KeyClick   ' 
                KeyEvent 17, KeyUp       'Ctrl + C


            Sleep(150) 'ждем пока буфер сообразит
            Dim clbVar As Variant
                   clbVar = Clipboard.GetText
                   SelTextApplication = CStr(clbVar)
End Function

Но как видно функция меняет содержимое буфера.

Можно как нибудь поймать текст без Ctrl + C ?

Помогите!

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Mich



Вопросов: 4
Ответов: 7
 Web-сайт: q-mich.narod.ru
 Профиль | | #1
Добавлено: 19.06.04 18:53
И еще:
Как поменять раскладку в другой программе ?

Ответить

Номер ответа: 2
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 20.06.04 00:33
Способ, предложенный HACKER'ом, работает лишь только тогда, когда нужное текстовое окно активно...

Ответить

Номер ответа: 5
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #5
Добавлено: 20.06.04 00:50
У всех трёх по разному. Так что лучше уж через буфер. Оно конечно по ламерски, но если реальным кодом, то кодить долго.

Ответить

Номер ответа: 6
Автор ответа:
 Mich



Вопросов: 4
Ответов: 7
 Web-сайт: q-mich.narod.ru
 Профиль | | #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-сайт: hw.t-k.ru
 Профиль | | #7
Добавлено: 20.06.04 01:55
активизируй parent'a текст-бокса, если он имеет парента, то его парента и т.д. пока GetParent не уткнется в ноль... после чего SetActiveWindow/SetForegroundWindow меняешь раскладку, см. линк выше, и опять активизируешь прошлое окно... которое конечно же было предварительно записано в переменную с пом. GetActiveWindow/GetForegroundWindow... все...

Ответить

Номер ответа: 8
Автор ответа:
 Mich



Вопросов: 4
Ответов: 7
 Web-сайт: q-mich.narod.ru
 Профиль | | #8
Добавлено: 04.07.04 08:53
  Ну так кто-нибудь знает как захватить выделенный текст с активного текстового поля ???
  Да пусть хоть это пол программы займет!
  Нужно очень!

Ответить

Номер ответа: 9
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #9
Добавлено: 04.07.04 11:03
Ну дык ты пробуй... посмотри QDictonary/MyDic... там это используется... может поразбираешь эти проги... чего и найдешь интересного...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам