Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

aktives Fensterhandle bekommen

  Alt 28. Mär 2003, 16:03
Hi
ich habe mal wieder eine Frage und zwar wie kann ich das Handle eines Fensters (gesamte Fenster...), das aktive und oben liegt herausfinden?
Nun kommt die Schwierigkeit. Normalerweise ginge, dass ja mit GetForeGroundWindow(), doch jetzt liegt mein Programm in der TNA und wenn auf das Icon ein Rechtsklich gemacht wird, erscheinnt ein PopUpMenü und wenn dann auf ein Item geklickt wird, soll das Handle herausgefungen werden.
Das Problem dabei ist ja, dass das Fenster nicht mehr aktiv ist (durch den Klick). D.h. ja das ich das Handle schon vorher rausbekommen muss. Nur wie?

//Nachtrag:
Folgendermaßen packe ich meine Anwendung in die TNA bzw. entferne es, usw.:
Delphi-Quellcode:
procedure TForm1.WMTASKBAREVENT(var message: TMessage);
var
  point: TPoint;
begin
  case message.LParamLo of
    WM_RBUTTONDOWN:
      begin
        GetCursorPos(point);
        popupmenu1.popup(point.x, point.y);
      end;
  end;
end;


procedure TaskBarAddIcon;
var tnid : TNOTIFYICONDATA ;
begin
    tnid.cbSize := sizeof(TNOTIFYICONDATA);
    tnid.Wnd := Form1.handle;
    tnid.uID := 1;
    tnid.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
    tnid.uCallbackMessage := WM_TASKBAREVENT;
// tnid.hIcon := form1.image2.picture.icon.handle;
    tnid.hIcon := form1.Icon.Handle;
    strcopy(tnid.szTip,'TNA');
    Shell_NotifyIcon(NIM_ADD, @tnid);
end;

procedure TaskBarRemoveIcon;
var tnid : TNOTIFYICONDATA ;
begin
    tnid.cbSize := sizeof(TNOTIFYICONDATA);
    tnid.Wnd := Form1.handle;
    tnid.uID := 1;
    Shell_NotifyIcon(NIM_DELETE, @tnid);
end;
Alexander
  Mit Zitat antworten Zitat