Autor Beitrag
Eagle-Data
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

WinXP SP2 (Pro), Win 2000
D5 Ent., D7 Ent.
BeitragVerfasst: Di 05.07.05 10:33 
Hi,

ich hab ein Programm geschrieben, was Temperatursensoren überwacht und Alarm schlägt. Das Programm soll bei uns auf dem Server laufen (Windows Server 2003). Nun will ich es aber so haben, dass wenn jemand den Server neu startet, dass das Programm dann automatisch gestartet wird. Dazu könnte ich es ja einfach in den Autostart packen, geht aber nicht so einfach weil es ja auch gestartet werden muss, wenn sich niemand anmeldet. Die Idee war daher noch, das Programm als Dienst laufen zu lassen. Nur dürfen Dienste Formulare haben? Sonst muss ich sehen das ich den reinen Überwachungsprozess extrahiere und daraus nen Dienst mache.

Hat jemand ne Idee?
iKilledKenny
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 394
Erhaltene Danke: 8

Win XP
D5 Prof, C# Express 2005
BeitragVerfasst: Di 05.07.05 12:04 
hi,

also meine delphi-hilfe hat folgendes zu dem thema ausgespuckt:

Zitat:

Indicates whether the service is interactive with the Windows desktop.

property Interactive: Boolean;

Description

Interactive indicates whether the service can interact with the Windows desktop. Interactive only has an effect when ServiceType is stWin32. For more information about creating interactive NT services, see the Microsoft Help.


heisst also, dass das wohl prinzipiell geht, aber wohl nicht das gelbe vom ei ist, denn man stelle sich vor es kommt irgendeine user-interaktion (fehler, message, ...) und keiner ist am server angemeldet, dann hängt dein service für immer. die bessere lösung ist wohl, ein user-interface und einen service, der nur die messungen macht, zu machen. mit dem ui dann die daten vom service abholen und bearbeiten.

viele grüße
alex
Eagle-Data Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

WinXP SP2 (Pro), Win 2000
D5 Ent., D7 Ent.
BeitragVerfasst: Di 05.07.05 12:07 
ja ist auch noch ne Idee. Nur das Prog erstellt wärend der Überwachung eine LogFile. Wie isn das wenn sich 2 leute oder mehr anmelden? Wird dann der dienst mehrfach gestartet? Gibt auch wieder probleme wenn 2 oder mehr dienste auf 1 logfile zugreifen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.05 12:07 
Also ich weiß zwar nicht, ob Dienste Formulare haben dürfen, aber das wäre ja nicht das Problem, denn du könntest den Dienst ja einfach ein Frontend aufrufen lassen, das dann die Meldung anzeigt.

Problem: VOR der Anmeldung dürfte das nicht so einfach sein, denn ich hab da noch nie ein Fenster gesehen, das nicht von Windows kommt. (Ok ich hab auch nie versucht eins dahinzubringen und irgendwie muss es auch möglich sein, wozu sonst der Schutz durch Strg+Alt+Entf bei der Anmeldung.)

ABER: Selbst wenn das geht! Dein Programm wird ja wohl kaum von jemandem gesehen, wenn niemand angemeldet ist, oder?

Deshalb: Wie wärs, wenn einfach nur ein Piepen den Alarm kennzeichnet?

**********

Weitere Idee: Wie ist es denn mit den Autostart-Registry-Zweigen? Werden die eventuell vor der Anmeldung ausgeführt? Ich meine jetzt
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Das könntest du ja mal ausprobieren.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.05 12:09 
user profile iconEagle-Data hat folgendes geschrieben:
ja ist auch noch ne Idee. Nur das Prog erstellt wärend der Überwachung eine LogFile. Wie isn das wenn sich 2 leute oder mehr anmelden? Wird dann der dienst mehrfach gestartet? Gibt auch wieder probleme wenn 2 oder mehr dienste auf 1 logfile zugreifen.

Ein Dienst wird nur einmal gestartet auch wenn sich verschiedene Leute nacheinander oder gleichzeitig (durch schnelle Benutzerumschaltung bei XP) anmelden.
Eagle-Data Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

WinXP SP2 (Pro), Win 2000
D5 Ent., D7 Ent.
BeitragVerfasst: Di 05.07.05 12:11 
es muss ja nicht unbedingt jemand sehen. es werden bei alarm mails verschickt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 05.07.05 12:21 
Wofür benutzt du denn dann überhaupt das Formular? Da solltest du allerdings das Formular wegschmeissen und daraus einen Dienst machen. Schon alleine weil das die schnellste und stabilste Möglichkeit sein dürfte, schließlich kann ein Dienst automatisch neu gestartet werden, falls er abstürzt.
Und das mit dem Dienst ist kein Problem, sofern die Internet-Verbindung für den Mail-Versand per LAN hergestellt wird (sonst wird die erst bei der Anmeldung hergestellt).
Eagle-Data Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

WinXP SP2 (Pro), Win 2000
D5 Ent., D7 Ent.
BeitragVerfasst: Di 05.07.05 12:24 
ok ich werds mal probieren. und mich dann melden wenn was rausgekommen ist und auch wenn nicht :wink:

noch ne Frage gibt es nen Unterschied zwischen Service und Service Anwendung?
drstar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 79
Erhaltene Danke: 2

Windows 8.1/x64
Delphi 10.1
BeitragVerfasst: Mi 17.08.05 16:08 
Meines Wissens nach setzt eine Service-Anwendung den entsprechenden Service (Dienst) voraus, er muß also zum Zeitpunktdes des Programmaufrufs bereits gestartet sein, sonst erhältst Du eine Fehlermeldung der Art 'Konnte keine Verbindung zum Dienst xyz herstellen'.
Eagle-Data Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39

WinXP SP2 (Pro), Win 2000
D5 Ent., D7 Ent.
BeitragVerfasst: Mi 17.08.05 18:49 
eigentlich nich. ich habs mitlerweile hinbekommen. als service-anwendung. isn ganz normaler dienst.