Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
454 Beiträge
 
Delphi XE4 Professional
 
#1

Sendmessage an andere Anwendung...

  Alt 27. Mär 2009, 10:29
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 ..
  Mit Zitat antworten Zitat