![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передать текстовые данные в поле сторонней программы [D7, WinXP]
Den © (2010-12-25 17:32:00)Привт. У нас на работе используется Microsoft Communicator (картинка вот -> http://savepic.org/1004075.jpg). Есть также некая программа-справочник с сотрудниками (ФИО, тел, E-Mail? кабинет и т.д.). В Communicator можно выполнить поиск человека введя в соответствующее поле фамилию или E-Mail. Задача из программы-справочника скопировать например двойным кликом по строке с сотрудником его ФИО или мыло, не важно, в в строку поиска Communicator.
Сначала видимо нужно скопировать в буфер значение определенной ячейки (ФИО например), потом вставить это значение в Communicator (предварительно запустив его если он не запущен). Вот тут и возникает вопрос как произвести вставку?
Curse (2010-12-27 09:33:00) [1]Сорри, глупость сказал. Пойду читать Руссиновича, что о дескрипторах пишет.
sniknik (2010-12-27 09:22:00) [2]точно! вслепую "тыкаться" гораздо интереснее... и в духе форумов, а то еще спрашивать не о чем будет.
Palladin (2010-12-27 08:09:00) [3]и дейстивительно... на кой его придумали...
Curse (2010-12-27 07:47:00) [4]
> Den, тебе нужна програмка SPY++, через функции FindWindow
> и FindWindowEx ищешь хэндл нужного эдита и посылаешь в него
> текст через WM_SETTEXT.
Сейчас этот хэндл один, а после следующего запуска - другой. И Спай++ не поможет.
sniknik (2010-12-26 15:51:00) [5]> Не очень понял для чего мне SPY++
это инструмент помогающий разобраться в структуре чужого приложения. грубо, в том, что на чем лежит.
> мне нужно все это реализовать в свой программе.
а посылать текст будешь на "деревню дедушке"?
> Пока не могу разобраться как найти хендл контрола (эдита) нужного....
сказали уже как...
> через функции FindWindow и FindWindowEx ищешь хэндл нужного эдита ...
Германн (2010-12-26 03:32:00) [6]
> Не очень понял для чего мне SPY++
> Пока не могу разобраться как найти хендл контрола (эдита)
> нужного....
>
2+2 = 4
В начинающие! :)
Den (2010-12-25 22:34:00) [7]
> tippa (25.12.10 22:08) [6]
Не очень понял для чего мне SPY++, мне нужно все это реализовать в свой программе. Пока не могу разобраться как найти хендл контрола (эдита) нужного....
tippa (2010-12-25 22:08:00) [8]Den, тебе нужна програмка SPY++, через функции FindWindow и FindWindowEx ищешь хэндл нужного эдита и посылаешь в него текст через WM_SETTEXT.
Rouse_ (2010-12-25 21:55:00) [9]Так ты найдешь просто окно программы, а не нужный тебе EDIT - почитай MSDN, там написано о организации окон...
Den (2010-12-25 21:44:00) [10]Я нашел такой пример:
h:= FindWindow(nil, 'Оffice Communicator'); // Ищем окно
SendMessage(h,WM_SETTEXT,0,LPARAM(PChar(Edit1.Text))); // сообщение
Но в примере написано что это приведет к изменению заголовка найденного окна на содержимое эдита. А мне нужно вставить содержимое в эдит найденного овно а не менять его заголовок. Попробовать негде, на этом компе нет Дельфи
Rouse_ (2010-12-25 21:26:00) [11]Ну тут уже сам думай как ты будешь детектировать нужное именно тебе приложение...
Den (2010-12-25 21:23:00) [12]
> Rouse_ © (25.12.10 21:00) [1]
А как определить какой именно программе предать содержимое? Ведь может еще что-то быть открыто у пользователя
Rouse_ (2010-12-25 21:00:00) [13]
> Вот тут и возникает вопрос как произвести вставку?
WM_SETTEXT