![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скопировать данные с помощью API функций [D7, WinXP]
Krozzz © (2009-02-13 19:00:00)Есть две программы. В каждой по компоненту Edit. Подскажите, как поместить информацию из Edit"а одной программы в Edit другой (и если вместо Edit будет Label)?
Krozzz (2009-02-16 20:35:00) [21]
> Ну тогда распрощайся с затеей.
Обидно ;(
Ну ладно...
Закрывайте тему
Сергей М. (2009-02-16 20:11:00) [22]
> первую программу изменять нельзя
Ну тогда распрощайся с затеей.
Krozzz (2009-02-16 20:09:00) [23]
> - в ответ первая программа посылает второй результат запроса.
первую программу изменять нельзя.
clickmaker (2009-02-16 12:46:00) [24]> wnd:=FindWindowEx(wnd,0,'TLabel','Label1');
> SendMessage(wnd,WM_GETTEXT,100, LParam(@a));
во-первых, TLabel никогда не найдешь
во-вторых, не выделена память под a
Юрий Зотов (2009-02-16 11:58:00) [25]> Krozzz (15.02.09 22:36) [24]
> wnd:=FindWindowEx(wnd,0,'TLabel','Label1');
Как можно найти окно TLabel, если никакого окна у TLabel нет совсем?
Причем TLabel - это далеко не единственный компонент без окна.
Универсальная схема может быть такой:
- регистрируем 2 собственных сообщения - запрос и ответ;
- при нажатии на кнопку вторая программа посылает первой запрос, в параметрах которого указывает, что она хочет получить;
- в ответ первая программа посылает второй результат запроса.
Германн (2009-02-16 00:23:00) [26]
> Все равно не копирует(
> P.S. А дельфийский компонент TLabel, к примеру, никакого
> окна не имеет.
>
Krozzz (2009-02-15 22:36:00) [27]
procedure TForm1.Button1Click(Sender: TObject);
var
wnd:hwnd;
a:string;
begin
wnd:=FindWindow('TFormN','FormN');
wnd:=FindWindowEx(wnd,0,'TLabel','Label1');
SendMessage(wnd,WM_GETTEXT,100, LParam(@a));
Edit1.Text:=a;
end;
Все равно не копирует(
Сергей М. (2009-02-15 20:44:00) [28]"Выкладываю" - WM_GETTEXT
Германн (2009-02-15 01:14:00) [29]
> Krozzz (14.02.09 19:15) [7]
>
>
> > исходники доступны
>
> доступны
>
Ой врёшь!
Всё что тобой написано после этого поста свидетельствует о совсем ином.
Krozzz (2009-02-14 23:36:00) [30]
> но возможно
без него?
Если можно, то можете выложить примерный код?
Сергей М. (2009-02-14 23:31:00) [31]Не обязательно, но возможно.
Krozzz (2009-02-14 23:29:00) [32]
> Ну, как минимум, контрол-источник должен быть представлен
> собственным окном.
т.е. все-таки надо добавить в прогу-источник дополнительный элемент?
Сергей М. (2009-02-14 23:26:00) [33]Ну, как минимум, контрол-источник должен быть представлен собственным окном.
Krozzz (2009-02-14 23:21:00) [34]Извиняюсь, забыл сказать, что программу, из которой копируется строка, тестовая, т.е. на практике надо будет считать строку из программы, в которой будет много элементов (естественно и тот, с которого надо считать) и добавить или убавить элементы к ней нельзя.
Krozzz (2009-02-14 23:15:00) [35]
> Можно лишь в частных случаях
Какими должны быть условия?
Сергей М. (2009-02-14 23:02:00) [36]
> Krozzz
Можно лишь в частных случаях
Denis__ (2009-02-14 22:53:00) [37]Пусть посылает сообщение, приняв которое та, другая программа отправляет строку...
Krozzz (2009-02-14 22:36:00) [38]
> потом сама получала?
Точнее получала программа, в которо кнопка, и размещала в каком-нибудь, скажем, Label или Edit?
Krozzz (2009-02-14 22:33:00) [39]
> Никак.Прежде чем что-то получать, надо чтобы это "что-то"
> было сначала отправлено, иначе получать нечего)
Т.е. нелзя сделать так, чтобы кнопка находила строку в другой программе, посылал ее в свою программу и потом сама получала?
Сергей М. (2009-02-14 22:25:00) [40]Никак.
Прежде чем что-то получать, надо чтобы это "что-то" было сначала отправлено, иначе получать нечего)