Hier mal ein grobe Skizze meiner Idee. Was hältst Du davon?
Generell:
- Alle Dateien beginnen mit DM_ (das steht für Domain Messenger). Sollten Dir die engl. Abkürzungen und Namen nicht gefallen, kann ich das noch ändern.
- Es gibt zwei Typen von Konfigurationsdateien: DM_Config_Global.ini (für alle Benutzer gültige Einstellungen) und DM_Config_Local.ini (für einen einzelnen Benutzer gültige Einstellungen)
Serverseitig:
- Verzeichnis: Das Logon-Skript weist dem Benutzer bestimmte Server-Laufwerke zu (das ist unabhängig vom DM). Auf einem dieser Laufwerke wird ein Verzeichnis angelegt in dem alle Dateien für DM abgelegt werden. Dieses Verzeichnis hat der Client im Lesezugriff.
Hier werden alle Dateien abgelegt: exe, ini, txt. - DM_Startup.exe: Das Logon-Skript kopiert/überschreibt die Datei DM_Startup.exe in ein lokales Verzeichnis jedes PCs der sich an der Domäne anmeldet. Dann wird vom Logon-Skript die lokale DM_Startup.exe gestartet.
Damit gibt es auf dem Server nach dem Client-Login keine langlaufenden Programme. - DM_Config_Global.ini: Hier werden globale Einstellungen gespeichert. Z.B.
- Lokales Verzeichnis in das DM installiert werden soll
- Zeiten für die Prüfung nach Meldungen mit Priorität normal und high
- Filter um PCs von DM auszuschließen oder zu inkludieren
- etc.
Clientseitig:
- DM_Startup.exe: Das vom Login-Skript gestartete Programm kopiert weitere notwendige Daten vom Server auf den Client und startet dann DM_Client.exe. Sollte DM_Startup bereits laufen, so wird DM_Client.exe erst gecancelt und dann gestartet.
- DM_Client.exe: Dieses Programm führt die Verarbeitung der Meldungen durch
- DM_Config_Local.ini: Damit kann die lokale Installation konfiguriert werden. Z.B.
- Einstellungen für das Logging wenn bei einem einzelnen PC Probleme auftreten
- etc.
Meldungen:
- Bei den Meldungen handelt es sich um normale Textdateien. Sie werden mit dem Befehl MsgBox angezeigt. Formatierungen bei der Anzeige (fett, Farben etc.) sind derzeit nicht vorgesehen.
- Prioritäten: Damit die Verarbeitung möglichst schnell abläuft gibt es für die Meldungen zwei Prioritäten: normal und high die im Dateinamen hinterlegt sind.
In der Konfigurationsdatei DM_Config_Global.ini ist definiert, wie oft nach Meldungen mit Priorität normal bzw. high gesucht werden soll (z.B. high alle 60 Sekunden, normal alle 10 Minuten). Damit soll sich die Systembelastung im Rahmen halten. - Dateiname: Dieser muss eindeutig sein und lautet: DM_<Priorität>_<JJJMMTT>_<nnn>.txt.
- Priorität: normal oder high
- JJJJMMTT: Jahr Monat und Tag z.B. 20230307
- nnn: Dreistellige laufende Nummer, damit mehere Meldungen pro Tag abgehandelt werden können.
- Die erste Zeile der Datei enthält informationen, wie mit der Nachricht umzugehen ist. Beispielsweise:
- Standort(e) für den die Meldung gültig ist
- Anzeige endet nach n Sekunden automatisch
- Anzeige muss mit OK bestätigt werden
- Anzeige muss 2x mit OK bestätigt werden
- etc.
Befehle:
Mit bestimmten Textdateien sollen Aktionen bei den Clients ausgeführt werden. Befehle werden wie Meldungen mit Prioriät high behandelt.
Beispiele:
- Restart: Startet DM bei allen Clients neu. Dies wird verwendet um sofort eine neue Version von DM zu verteilen (also nicht auf den nächsten Login zu warten).
- Exit: Beendet DM bei allen Clients
- etc.