![]() |
Shell_NotifyIcon und Windows 7 (Balloon Tips)
Moin !
Ich benutze Shell_NotifyIcon um ein TrayIcon zu erstellen und um Balloons anzuzeigen. Unter XP / Vista geht es problemlos. Unter Win7 kommt hingegen nur das TrayIcon. Balloon Tips lassen sich aber nicht darstellen. Ich bekomme beim Erstellen des TrayIcons auch folgende Meldung: "An attempt was made to reference a token that does not exist" Was mich auch etwas verwundert ... Bei dem Windows 7 kriege ich als DLL Version von Shell32 6.0.1. Laut dem hier: http://msdn.microsoft.com/en-us/library/bb773352(VS.85).aspx sollte da aber 6.0.6 raus kommen :gruebel: Zitat:
|
Re: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Entweder du benutzt die Windows 7 Controls For Delphi von
![]() oder du benutzt die CoolTrayIcon Komponente. funktioniert problemlos :) |
Re: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Hallo,
auch die Trayicon-Komponente aus der Jedi VCL funktioniert problemlos unter Windows 7 mit Ballon Tips :-) Gruß Patrick |
Re: Shell_NotifyIcon und Windows 7 (Balloon Tips)
![]() Hallo Leute! Ich habe folgendes Problem im Zusammenhang mit dem CoolTrayIcon und Windows 7: Meine Applikation wird als Service gestartet und setzt ein TrayIcon in die Taskleiste. Unter Windows XP funktioniert dies einwandfrei. Unter Windows 7 habe ich jedoch folgendes Problem: Das Icon wird nicht angezeigt, obwohl der Dienst ordnungsgemäß läuft. Ich habe dann herausgefunden, dass Icons standardmäßig versteckt werden und dieses in den Eigenschaften mittels "Show icon and notification" versucht zu aktivieren. Danach erhalte ich jedoch die Meldung "Das Benachrichtigungssymbol ist derzeit nicht aktiv" und das Icon wird weiterhin nicht angezeigt. Kann mir jemand weiterhelfen. Wenn man googelt findet man nicht wirklich Hinweise, was das Problem sein könnte. Nach diversen Stöbereien im Internet hab ich noch folgendes ausprobiert: -Starten des Dienstes UI0Detect (Erkennung interaktiver Dienste): hat leider auch nichts gebracht. -Auch das Aktivieren (was Standarmäßig sowieso der Fall ist) von "allow service to interact with desktop" im Service ändert nichts. Bin schon relativ verzweifelt, was ich hier noch machen könnte. Die Antwort auf meinen Beitrag auf Delphi-forum.de: Zitat:
|
Re: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Damit wirst Du im Prinzip leben müssen. So wie ich das im Kopf habe, dürfen Dienste sowieso keine direkte Userinteraktion haben.
Sherlock |
Re: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Der Service läuft dort auf einem anderem "Desktop" und er hat keinen Zugriff auf den sichtbaren Desktop.
Fazit: ein Service kann nicht selber mit dem User kommunizieren. Rate mal, warum fast alle große Firmen für diesen Zweck eine zusätzliche GUI-Anwendung haben, welche via IPC mit dem Service reden kann und der für dir Kommunikation mit dem User sorgt? |
AW: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Heyho,
ich benutze XE2 (eine FM-HD Anwendung) mit win7 64bit. Ich kann mit Shell_NotifyIcon ein Item ins System Tray einfügen. Leider verabschieded sich mein Tray Icon jedesmal, wenn ich den Mauszeiger über das System Tray bewege. Ich bitte um Denkanstöße :) Hier mein Code:
Code:
Und ja: ich bin ein Totengräber :twisted:
procedure TRandomForm.SendToTray;
var IconData : TNOTIFYICONDATA; ExeName : PWideChar; begin IconData.cbSize := sizeof(TNOTIFYICONDATA); IconData.Wnd := RandomForm.handle; IconData.uID := 1; IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; IconData.uCallbackMessage := WM_TASKBAREVENT; // $1E2D = Doppelklick linke Maustaste ExeName := PWideChar(Paramstr(0)); IconData.hIcon := ExtractIcon(application.GetHashCode,ExeName, 0) ; strcopy(IconData.szTip,'uktfzg'); Shell_NotifyIcon(NIM_ADD, @IconData); end; Danke euch. |
AW: Shell_NotifyIcon und Windows 7 (Balloon Tips)
/bump
|
AW: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Wenn die anwendung nicht auf das Maus-Ereignis reagiert (sei die Anwendung verreckt/abgestürtzt oder weil garnicht oder falsch auf die Message reagiert wird), entfernt Windows diese Icons.
Sicher daß alle Parameter richtig sind und auch auf das Event ordnungsgemäß reagiert wird? Und was sagt der Debugger zu Letzerem? ![]() |
AW: Shell_NotifyIcon und Windows 7 (Balloon Tips)
Hallo himitsu,
danke für die Antwort. Nein, die Anwendung stürzt nicht ab. Hier mein Mouse-Event:
Code:
Der Debugger kommt aber garnicht erst zum Auslesen der Message.
procedure WMTaskbarEvent(var message: TMessage); message WM_TASKBAREVENT;
Es wird wohl an den Parametern liegen. Mir ist aufgefallen, dass mein RandomForm.Handle einen Index herausgibt, jedoch der Taskmanager garnicht hinterher kommt und mir immer weniger Handles anzeigt. Könnte es hier zu einem Adressierungs-Konflikt kommen? Edit: Habe meinen Code spaßeshalber in einem neuem standard VCL-Formular ausprobiert. Dort läuft alles wunderbar. Scheint am FMX zu liegen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz