Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Каким образом лучшее всего передать инфо из проги в прогу? [D6, WinXP]


Страницы:   1 2

oduvan ©   (2002-08-13 16:12:00) 

Каким образом лучшее всего передать инфо из проги в прогу?

Если Messaga"ми, то как передать текстовую строку (string или PCHAR), я так понял, что нужно зоздавать свой Тип Мессаджа там WM_USER+NNN. Поможите мастаки!


Игорь Шевченко   (2002-08-13 16:59:00) [21]

Alx2 © (13.08.02 16:48)

Нда...


Alx2   (2002-08-13 16:48:00) [22]

>MBo © (13.08.02 16:42)
На вскидку:
Function ShellProc(nCode: Integer; WPARAM, LPARAM: Integer): Integer; Stdcall;
Var
CBTCreateWnd: PCBTCreateWnd Absolute LPARAM;
Str : String;
DataStruct : TCOPYDATASTRUCT;

Begin
Result := CallNextHookEx(hhk, nCode, WPARAM, LPARAM);
If nCode = hcbt_ACTIVATE
Then
Begin
MyWindow := FindWindow("TWatcherForm", "WatcherForm");
Str := CBTCreateWnd^.lpCs^.lpszClass; // - накрывается при таком подходе (используем переданный класс).
with DataStruct do
begin
dwData := wParam;
cbData := Length(Str)+4;
lpData := Pointer(Str);
end;
SendMessage(MyWindow, WM_CopyData, 8101973, Integer(@DataStruct));
End;
End;

А так - работает

Function ShellProc(nCode: Integer; WPARAM, LPARAM: Integer): Integer; Stdcall;
Var
CBTCreateWnd: PCBTCreateWnd Absolute LPARAM;
Str : String;
DataStruct : TCOPYDATASTRUCT;

Begin
Result := CallNextHookEx(hhk, nCode, WPARAM, LPARAM);
If (nCode = hcbt_ACTIVATE Then
Begin
MyWindow := FindWindow("TWatcherForm", "WatcherForm");
SetLength(Str,255);
GetClassName(wParam,PChar(Str),255); // Класс окна получаем заново, не используя переданное
Str := PChar(Str);
with DataStruct do
begin
dwData := wParam;
cbData := Length(Str)+4;
lpData := Pointer(Str);
end;
SendMessage(MyWindow, WM_CopyData, 8101973, Integer(@DataStruct));
End;
End;

Подробнее завтра воспроизведу.
Пишу второпях уже, могу поднагнать, как обычно :))


MBo   (2002-08-13 16:42:00) [23]

>Alx2
Большой практики нет. Какие?


Игорь Шевченко   (2002-08-13 16:31:00) [24]

Через MMF, к примеру


Alx2   (2002-08-13 16:29:00) [25]

>MBo © (13.08.02 16:13)
Местами встречаются интересные казусы с этим wm_copydata.


MBo   (2002-08-13 16:13:00) [26]

wm_copydata


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо