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?