Hallo Leute,
ich hab ein kleines Problem mit "sendmessage" und dem
Handle der Fremdanwendung..
Wenn ein andere Programm eine TrayIcon Anwendung ist -
oder minimiert in der Taskbar liegt - finde ich das Fensterhandle nicht mehr.
Wenn das Programm wsmazimized oder wsnormal ist - funktioniert alles..
Kann mir jemand helfen, den Fensterhandle für TrayIconApplication und für eine minimierte Anwendung zu finden ?
Ich weiß: Fenstername, TForm-name und Exe-Name der Anwendung...
vielen Dank
Erich Wanker
Beispiel Sendmessage:
Delphi-Quellcode:
procedure TForm2.SpeedButton1Click;
var
aCopyData : TCopyDataStruct;
p : PChar;
begin
p := PChar('
Hello World');
with aCopyData
do begin
dwData := 1;
cbData := StrLen(p) + 1;
lpData := p;
end;
SendMessage(FindWindow(PChar('
TForm1'),
nil), WM_COPYDATA, Longint(
Handle),Longint(@aCopyData));
end;
Beispiel "Fremdanwendung":
Delphi-Quellcode:
procedure TForm1.WMCopyData(var Msg: TWMCopyData);
var x :Integer;
gl_st_CopyDataStruct :String;
begin
StrLCopy(gl_st_CopyDataStruct, Msg.CopyDataStruct.lpData, Msg.CopyDataStruct.cbData);
x := (Integer(Msg.CopyDataStruct.dwData));
application.BringToFront;
application.ShowMainForm:=true;
Form1.WindowState:= wsmaximized;
ForceForegroundWindow(application.Handle);
showmessage(gl_st_CopyDataStruct);
end;
Erich Wanker - for life:=1971 to lebensende do begin ..