Shell_NotifyIconA-Funktion (shellapi.h)
Sendet eine Nachricht an den Statusbereich der Taskleiste.
Syntax
BOOL Shell_NotifyIconA(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAA lpData
);
Parameter
[in] dwMessage
Typ: DWORD-
Ein Wert, der die aktion angibt, die von dieser Funktion ausgeführt werden soll. Sie kann einen der folgenden Werte aufweisen:
NIM_ADD (0x00000000)
0x00000000. Fügt dem Statusbereich ein Symbol hinzu. Das Symbol erhält einen Bezeichner in der NOTIFYICONDATA- Struktur, auf die durch lpdata-verwiesen wird – entweder über seine uID- oder guidItem- Member. Dieser Bezeichner wird in nachfolgenden Aufrufen von Shell_NotifyIcon verwendet, um spätere Aktionen für das Symbol auszuführen.
NIM_MODIFY (0x00000001)
0x00000001. Ändert ein Symbol im Statusbereich. NOTIFYICONDATA Struktur, auf die lpdata verweist, verwendet die ID, die ursprünglich dem Symbol zugewiesen wurde, als sie dem Infobereich (NIM_ADD) hinzugefügt wurde, um das zu ändernde Symbol zu identifizieren.
NIM_DELETE (0x00000002)
0x00000002. Löscht ein Symbol aus dem Statusbereich. NOTIFYICONDATA- Struktur, auf die lpdata verweist, verwendet die ID, die ursprünglich dem Symbol zugewiesen wurde, als sie dem Infobereich (NIM_ADD) hinzugefügt wurde, um das zu löschende Symbol zu identifizieren.
NIM_SETFOCUS (0x00000003)
0x00000003. Shell32.dll Version 5.0 und höher nur. Gibt den Fokus auf den Infobereich der Taskleiste zurück. Symbole für den Infobereich sollten diese Meldung verwenden, wenn sie ihren UI-Vorgang abgeschlossen haben. Wenn das Symbol z. B. ein Kontextmenü anzeigt, aber der Benutzer ESC drückt, um es abzubrechen, verwenden Sie NIM_SETFOCUS, um den Fokus auf den Infobereich zurückzugeben.
NIM_SETVERSION (0x00000004)
0x00000004. Shell32.dll Version 5.0 und höher nur. Weist den Infobereich an, sich entsprechend der versionsnummer zu verhalten, die im uVersion Member der Struktur angegeben ist, auf das durch lpdataverwiesen wird. Die Versionsnummer gibt an, welche Member erkannt werden.
NIM_SETVERSION muss jedes Mal aufgerufen werden, wenn ein Benachrichtigungsbereichssymbol hinzugefügt wird (NIM_ADD). Es muss nicht mit NIM_MODIFY aufgerufen werden. Die Versionseinstellung wird nicht beibehalten, sobald sich ein Benutzer abmeldet.
Ausführliche Informationen finden Sie im Abschnitt "Hinweise".
[in] lpData
Typ: PNOTIFYICONDATA
Ein Zeiger auf eine NOTIFYICONDATA--Struktur. Der Inhalt der Struktur hängt vom Wert dwMessageab. Es kann ein Symbol definieren, das dem Infobereich hinzugefügt werden soll, dazu führen, dass dieses Symbol eine Benachrichtigung anzeigt oder ein Symbol identifiziert, das geändert oder gelöscht werden soll.
Rückgabewert
Typ: BOOL-
Gibt TRUE zurück, wenn dies erfolgreich ist, oder FALSE andernfalls. Wenn dwMessage- auf NIM_SETVERSION festgelegt ist, gibt die Funktion TRUE zurück, wenn die Version erfolgreich geändert wurde, oder FALSE, wenn die angeforderte Version nicht unterstützt wird.
Bemerkungen
Ab Windows 2000 (Shell32.dll Version 5.0), wenn Sie das uVersion Mitglied der NOTIFYICONDATA Struktur festlegen, auf die durch lpdata- auf NOTIFYICON_VERSION_4 oder höher verwiesen wird, werden Shell_NotifyIcon Maus- und Tastaturereignisse anders behandelt als in früheren Versionen von Windows. Zu den Unterschieden gehören die folgenden:
- Wenn ein Benutzer das Kontextmenü eines Benachrichtigungssymbols mit der Tastatur auswählt, sendet die Shell jetzt die zugeordnete Anwendung eine WM_CONTEXTMENU Nachricht. Frühere Versionen senden WM_RBUTTONDOWN und WM_RBUTTONUP Nachrichten.
- Wenn ein Benutzer ein Benachrichtigungssymbol mit der Tastatur auswählt und es mit der LEERTASTE oder EINGABETASTE aktiviert, sendet die Version 5.0 Shell die zugeordnete Anwendung an eine NIN_KEYSELECT Benachrichtigung. Frühere Versionen senden WM_RBUTTONDOWN und WM_RBUTTONUP Nachrichten.
- Wenn ein Benutzer ein Benachrichtigungssymbol mit der Maus auswählt und mit der EINGABETASTE aktiviert, sendet die Shell nun die zugeordnete Anwendung an eine NIN_SELECT Benachrichtigung. Frühere Versionen senden WM_RBUTTONDOWN und WM_RBUTTONUP Nachrichten.
- NIN_BALLOONSHOW. Gesendet, wenn die Sprechblase angezeigt wird (Sprechblasen werden in die Warteschlange gestellt).
-
NIN_BALLOONHIDE. Wird gesendet, wenn die Sprechblase verschwindet. Beispiel: Wenn das Symbol gelöscht wird. Diese Nachricht wird nicht gesendet, wenn die Sprechblase aufgrund eines Timeouts geschlossen wird oder der Benutzer mit der Maus klickt.
Ab Windows 7 wird NIN_BALLOONHIDE auch gesendet, wenn eine Benachrichtigung mit dem NIIF_RESPECT_QUIET_TIME Flag versuche festgelegt wird, während der Ruhezeit anzuzeigen (die erste Stunde eines Benutzers auf einem neuen Computer). In diesem Fall wird die Sprechblase niemals angezeigt.
- NIN_BALLOONTIMEOUT. Wird gesendet, wenn die Sprechblase aufgrund eines Timeouts geschlossen wird.
- NIN_BALLOONUSERCLICK. Wird gesendet, wenn die Sprechblase geschlossen wird, weil der Benutzer mit der Maus geklickt hat.
- NIN_POPUPOPEN. Wird gesendet, wenn der Benutzer mit dem Mauszeiger auf ein Symbol zeigt, dass die umfangreichere Popupbenutzeroberfläche anstelle einer standardmäßigen Text-QuickInfo verwendet werden soll.
- NIN_POPUPCLOSE. Wird gesendet, wenn ein Cursor nicht mehr auf ein Symbol zeigt, um anzugeben, dass die umfangreiche Popup-UI geschlossen werden soll.
Anmerkung
Der shellapi.h-Header definiert Shell_NotifyIcon als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows XP [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | shellapi.h |
Library | Shell32.lib |
DLL- | Shell32.dll (Version 4.0 oder höher) |
API-Satz | ext-ms-win-shell-shell32-l1-2-1 (eingeführt in Windows 10, Version 10.0.10240) |