Einzelnen Beitrag anzeigen

perle

Registriert seit: 8. Apr 2004
183 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: TNA, wer kennt es nicht ;-)

  Alt 1. Dez 2004, 15:03
Zitat von MathiasSimmack:
Weiß nicht. Habe ich?
keine Ahnung, ich versteh die Antwort nich


Ich erklärs mal mit nem Beispiel :

Nehmen wir an ich wollte ein Programm schreiben, dass unsichtbar im Hintergrund läuft und auf das drücken eines Hotkeys wartet.
Sobald der Hotkey gedrückt worden ist hole ich mir das Handle des Fensters , dass den Focus hat (GetForeGroundWindow),
mache dies Unsichtbar (SendMessage(DasHandle,SW_HIDE)) und erstelle stattdessen ein TNA Icon....das hab ich normalerweise so gemacht :

Delphi-Quellcode:
const
  WM_TNAEVENT = WM_USER + 1;
...
var
  IconIndex: Word;
begin
  with TNA_Icon do
   begin
     cbSize := SizeOf(TNA_Icon);
     Wnd := Handle;
     uID := 0;
     uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
     szTip := 'blub';
     hIcon := Application.Icon.Handle;
     uCallbackMessage := WM_TNAEVENT;
   end;
   Shell_NotifyIcon(NIM_ADD,@TNA_Icon);
...
soooo wenn ich jetzt auf dieses Icon klicke, dann wird WM_TNAEVENT ausgelöst, wie kann ich nun in meinem Programm abfragen, welches Icon angeklickt wurde? Denn für jedes Fenster, dass ich per Hotkey in den Tray "geschickt" hab, hat ja ein Icon bekommen.
Außerdem sollte ja noch jedes TNA ICON, das icon des Prozesses bekommen, der gerade Versteckt wurde. Das hatte ich so versucht :

ExtractAssociatedIcon(HInstance,'D:\Programme\Mozilla Thunderbird\thunderbird.exe',IconIndex); // <-- der feste Pfad war zum Testen aber es wurde nie ein Icon angezeigt obwohl es das Programm dort gibt.


Ich hoffe nun war es verständlicher?
  Mit Zitat antworten Zitat