Hallo!
Ich möchte ein String an ein anderes Programm senden. Ich habe bei den Schweizern ein SendMessage-Beispiel dafür gefunden. Es funktioniert aber nicht, wenn das Ziel-Programm in der Taskleiste minimiert ist. Wie kann ich es so machen, das die Nachricht in jedem Fall empfangen wird?
Senden:
Delphi-Quellcode:
procedure StringSenden(aStr: string);
var
aCopyData: TCopyDataStruct;
hTargetWnd: HWND;
ProcID: Cardinal;
begin
with aCopyData do
begin
dwData := 0;
cbData := StrLen(PChar('#' + aStr)) + 1;
lpData := PChar('#' + aStr);
end;
hTargetWnd := FindWindowEx(0, 0, nil, PChar('Verwaltung'));
if hTargetWnd <> 0 then
SendMessage(hTargetWnd, WM_COPYDATA, Longint(Application.Handle), Longint(@aCopyData))
end;
Empfangen:
Delphi-Quellcode:
procedure TfrmMain.ReadMessage(var Msg: TWMCopyData);
var
sText: array[0..256] of Char;
begin
StrLCopy(sText, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
if (length(sText) > 1) and (pos('#', sText) > 0) then
...
end;
Wie soll ich die Code in meinem Fall ändern? Danke!