Tach,
ich habe im Rahmen eines anderen Programmes Desktopbenachrichtigungen benötigt. Mit der Zeit wuchs der Code immer weiter an und letztendlich dachte ich, dass das eine schöne Sache ist und ich das ja mit der Welt teilen kann. Ich weiß, dass es bereits eine ähnliche UDF gibt, aber ich wollte für mein Programm eine eigene Lösung erarbeiten, und als das Projekt mit der Zeit wuchs, habe ich eine eigene UDF erstellt.
Also, was haben wir hier?
Die UDF stellt auf sehr einfache Art und Weise Desktopbenachrichtigungen bereit. Die Anordnung erfolgt auf dem Hauptbildschirm unten rechts, Benachrichtigungen werden gestapelt, solange Platz verfügbar ist, weitere werden erstmal versteckt. Beim Schließen von Benachrichtigungen rücken die anderen auf. Die Benachrichtigungen haben ein hübsches, minimalistisches Design in zwei Farben (Hintergrund- und Textfarbe). Standardmäßig sehen sie aus wie die dunkle Taskleiste in Windows 10 (inklusive der Transparenz), die Farben und weitere Parameter lassen sich aber einstellen um auch an andere Umgebungen angepasst werden zu können (s. Beispielskripte). Die UDF funktioniert sowohl wenn GUIOnEventMode benutzt oder nicht benutzt wird und erkennt dies automatisch.
Zeig her
Die Benachrichtigung besteht aus der GUI, dem Titel, der Nachricht, einer Trennlinie, der Datumsanzeige, der Uhrzeitanzeige, und dem Schließen-Button (außerdem einem Rahmen (Border) der Benachrichtigung, wenn aktiviert). Die Farbe von Titel, Nachricht, Trennlinie, Datum, Uhrzeit und Schließen-Button (und Border) wird durch die Textfarbe bestimmt, der Hintergrund für die Benachrichtigung durch die Hintergrundfarbe.
Aktuell haben die Benachrichtigungen eine feste Größe. Über variable Größen habe ich nachgedacht, aber bisher nicht eingebaut, da ich es nicht benötige.
Interessiert oder Begeisterte werden vielleicht feststellen, dass die Trennlinie bei den Benachrichtigungen nicht durchgehend ist. Das liegt einfach daran, dass es besser aussieht
Ansonsten haben Benachrichtigungen folgendes Design:
- Windows 10: Gleiches Design wie die Taskleiste
- Windows 8/8.1: Bei bestimmten Designs haben sie die Farbe wie der Rahmen des aktiven Fensters, sonst sind sie schwarz mit Transparenz (s. Screenshot)
- Windows 7 und eher: schwarz mit Transparenz
Wie binde ich die Benachrichtigungen in mein Script ein?
- UDF includen
- _Notifications_Startup() aufrufen (nachdem festgelegt wurde ob GUIOnEventMode benutzt werden soll oder nicht!)
- sofern GUIOnEventMode nicht benutzt wird: Rufe in deiner Hauptschleife die Funktion _Notifications_CheckGUIMsg($__GUIMsg) auf und übergib ihr den Rückgabewert von GUIGetMsg
- Erstelle eine Benachrichtigung mit _Notifications_Create($__title, $__message)
Vor dem dritten Schritt kann das Aussehen und Anderes mit den Set-Funktionen verändert werden (s. Beispielskripte):
_Notifications_SetAnimationTime
_Notifications_SetBorder
_Notifications_SetButtonText
_Notifications_SetBkColor
_Notifications_SetColor
_Notifications_SetDateFormat
_Notifications_SetSound
_Notifications_SetTextAlign
_Notifications_SetTimeFormat
_Notifications_SetTransparency
Außerdem können eigene Funktionen festgelegt werden, die aufgerufen werden, wenn eine Benachrichtigung geklickt wurde (s. Advanced Example)
Und nu?
Weitere Infos finden sich in der umfänglich dokumentierten UDF-Datei.
Zwei Beispielskripte zeigen außerdem, wie die Anwendung aussehen kann, einmal für GUIOnEventMode aktiviert, einmal deaktiviert. Ein weiteres Beispiel demonstriert das Verändern der Benachrichtigungen mit den Set-Funcktionen.
Wars das?
Jup, viel Spaß
Changelog
Spoiler anzeigen
v1.2 Added Notifications will be colored like your taskbar by default (Win10) or like your active window border color (Win8/8.1)
Added Notifications will fade out when closed (in case animation time is > 0)
Added Call your own function when a notification is clicked (see _Notifications_Create parameters)
Added Set your own notification sound using _Notification_SetSound (mp3 or wav files)
Added Close all open notifications using _Notifications_CloseAll
Changed _Notifications_SetTextColor -> _Notifications_SetColor
v1.1 Improvement Gives the process a higher priority while windows are moved for hopefully smoother window movement
Improvement Restructured window movement code for faster execution (therefore removed _Notifications_Sleep)
Bugfix Notifications were all moved and could disappear when one was closed in case AnimationTime was set to 0
v1.0 Initial release
Alles anzeigen
Notifications.au3 (v1.2)
Notifications GUIMsg Example.au3
Notifications OnEvent Example.au3
Notifications Advanced Example.au3