Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Version (Eigenschaften) der gestarten exe im Netzwerk (https://www.delphipraxis.net/205296-version-eigenschaften-der-gestarten-exe-im-netzwerk.html)

haentschman 23. Aug 2020 08:38


Version (Eigenschaften) der gestarten exe im Netzwerk
 
Hallöle...:P

In dem Thread https://www.delphipraxis.net/205205-...neter-exe.html haben wir über ein Update gesprochen. Das funktioniert...:thumb:

Jetzt habe ich das Nächste. :stupid: Erst mal geht es mir darum, welche Variante zu bevorzugen ist.

IST:
Auf dem Server sind ca. 10 Instanzen offen. Im Ordner ist eine alte "Kopie" gelistet. :wink: In den offenen Dateien heißen sie alle gleich.

SOLL:
Ich möchte herausbekommen, welcher User/Computer welche Instanz (Eigenschaften) gestartet hat, damit ich ihn, nach einer Zeitspanne, an das Update erinnern kann. :wink:


Möglichteiten die ich sehe:
1: Broadcast über Netzwerk
2: ein eigenes "Tool" (TCP Server) an welchem sich alle beim Start anmelden und sich beim Beenden abmelden. Da kann ich die Informationen listen.
3: RAD SERVER (geplant) Auslesung über REST. Anmeldung der EXE wie 2.
4: die EXE erinnert automatisch nach Zeit X.

Wie würdet ihr es lösen?

:wink:

Delphi.Narium 23. Aug 2020 09:31

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
4.

1. Kann man ignorieren und Du musst das immerwieder machen, in der Hoffnung, dass die User sich irgendwann mal bequemen, der Aufforderung ... nachzukommen.
2. Da bleiben ggfls. Reste, wenn User mal das Programm per TaskManager ... "abschießen" oder sonstwie nicht sauber beenden (Rechnerabsturz ...). Du weißt also nie 100% verlässlich, ob die Infos noch aktuell sind.
3. dito.
4. Damit könntest Du den User ggfls. "penetrant" drauf hinweisen, dass er das Update machen soll (MessageDLG, Formular, irgendwas aktiv zu bedienendes), bis das Update für ihn "weniger Aufwand" ist, als die permanenten Erinnerungen. Da das Update eh nur ein Beenden und Neustarten des Programmes ist und der Rest automatisch geht, sollten auch träge User mit 'ner (im Laufe der Zeit) immer penetranteren "Erinnerungsorgie" zum Beenden und Neustarten des Programmes bewogen werden können.

Unter "penetrant" verstehe ich hier sowas in der Art:
0. Der bereits vorhanden Hinweis.
+1 Woche nach neuer Version eventuell 1 mal täglich (gegen Mittag) erinnern.
+2 Woche stündlich
+3 Woche alle 5 Minuten
+4 Woche: Dialog anzeigen, der nach Bestätigung den Vorgang selbst anstößt (ShellExecute des Launchers und "reguläres Beenden des Programmes"), sofern das irgendwie ohne Datenverluste oder Zerstörung des Workflows möglich sein sollte.

Wie oft gibt es denn überhaupt neue Versionen?

Die Woche im Beispiel kannst / musst Du halt durch einen für Deine Software / Deine Kunden "sinnvollen" Zeitraum ersetzen ;-)

Das läuft letztlich auf eine Erweiterung Deines schon vorhanden "Prüfthreads" hinaus, weitere Werkzeuge, Schnittstellen, ... wären so nicht erforderlich.

haentschman 23. Aug 2020 10:05

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
Danke...:P
Zitat:

4.
...halte ich auch für die wenigste Arbeit.
Zitat:

Wie oft gibt es denn überhaupt neue Versionen?
Zwischen 4x am Tag und einmal aller 3 Monate... :wink: Hatte ich schon alles. :wink:
Zitat:

Deine Kunden
...interne Firmenmitarbeiter. Keine Externen Kunden. Da könnte man sowas nicht machen. :roll:
Zitat:

0. Der bereits vorhanden Hinweis.
...ist im Haupmenü über ein farbiges Icon sichtbar.
Zitat:

+1 Woche nach neuer Version eventuell 1 mal täglich (gegen Mittag) erinnern.
Ich würde das täglich ein Mal machen...weil die User die Anwendung nicht herunterfahren und den Rechner morgens wieder aus dem Schlafmodus holen. Einige fahren den Rechner täglich herunter. Da gibt es kein Problem. :wink:

Delphi.Narium 23. Aug 2020 10:24

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
Blöde Frage:

Schickt Windows beim Einschalten des Schlafmodus irgendeine Message?

Dann könntest Du die doch ggfls. abfragen und Dein Programm beendet sich dann?

https://www.delphipraxis.net/150109-...e-standby.html
https://social.msdn.microsoft.com/Se...POWERBROADCAST

haentschman 23. Aug 2020 10:31

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
Zitat:

Dann könntest Du die doch ggfls. abfragen und Dein Programm beendet sich dann?
...automatisch beenden geht nicht. :wink:
Ich denke ich mache die "penetrante" Version. Wenn das nicht hilft, dann mache ich einen Spaziergang durch die Firma. (übersichtlich) :thumb:

himitsu 23. Aug 2020 15:47

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
Ich hab einen Thread (geht aber auch ein Timer oder Dergleichen), der beim Programmstart das Änderungsdatum der eigenen EXE ausliest und zu Laufzeit regelmäßig mit dem aktuellen Datum des selben EXE-Namen vergleicht.
Bei Unterschied wird eine MessageBox mit Timeout geöffnet, der Neustart erbeten.

Über DataSnap (das "kleine" RAD-Server) gibt es eine Notification, womit sich alle aktiven Programme manuell runterfahren/neu starten lassen.
Der Thread entstand, da die Notifications damals manchmal/ständig hingen. (Verbindung verreckte und es kam nichts mehr an)
Und die Prüfung im Thread, falls das Programm hängt. Reagiert die GUI nicht rechtzeitig, dann kommt ein TerminateProcess. (PostMessage/TThread.Queue(Message+Query), Sleep, PostMessage(Close), Sleep und letztendlich Terminate)

Existiert die EXE grade nicht, dann wird der Rest verzögert, damit während des Austauschs, wenn die neue EXE/DLL/BPL noch nicht komplett da sind, oder bei unterbrochener Netzwerkverbindung, nicht neu gestartet wird, weil das ja jetzt noch nicht geht.

haentschman 24. Aug 2020 05:00

AW: Version (Eigenschaften) der gestarten exe im Netzwerk
 
Hallöle...:P
Zitat:

Ich hab einen Thread (geht aber auch ein Timer oder Dergleichen), der beim Programmstart das Änderungsdatum der eigenen EXE ausliest und zu Laufzeit regelmäßig mit dem aktuellen Datum des selben EXE-Namen vergleicht.
...ich auch. :tongue:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz