Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Netzwerkmonitor multiuserfähig machen... (https://www.delphipraxis.net/91895-netzwerkmonitor-multiuserfaehig-machen.html)

EConvertError 11. Mai 2007 14:11


Netzwerkmonitor multiuserfähig machen...
 
Hallo!

Ich hab mir bereits vor einiger Zeit einen kleinen Netzwerkmonitor geschrieben. Soweit auch nix besonderes - er nutzt die IpHelperApi.

Bisher ist es eine ganz normale exe-Datei. Gestartet wird das Programm per Autostart bequem beim Systemstart.

Allerdings ist es, wie ich es gerade mache, im Zeitalter der Multiuser-Betriebssysteme nicht mehr ganz so zeitgemäß. Immerhin loggt das Programm zwar den ganzen Verkehr des Computers, aber der Benutzer muss ja nicht immer angemeldet sein.

Klar könnte man die Logdateien an zentraler Stelle ablegen, allerdings stelle ich mir die Speicherung schwierig vor, sodass das System bei mehreren laufenden Instanzen nicht durcheinander kommt. Und selbst dann ist vielleicht nicht der ganze Verkehr mitgeloggt (immerhin muss ja im Moment gar kein Benutzer angemeldet sein, oder ein Benutzer hat es aus dem Autostart entfernt). Klar ich will keine Firewall oder ein Überwachungsprogramm schreiben, aber ich denke, ich habt eine Vorstellung von meinem Problem bekommen.

Deshalb habe ich mir überlegt, ob nicht ein Service angebracht wäre. Was meint ihr zu diesem Vorschlag? Ist das optimal, oder gibt es bessere Lösungen?

So will ich sicher keinen interaktiven Service schreiben, sodass sich folgende Frage stellt:
1) Wie kommuniziere ich am besten mit dem Service? Named Pipes, TCP, MMFs?
2) Wie starte/stoppe ich einen Service per Delphi Code (von einem anderen Programm aus, versteht sich).

Vielen Dank,
Andreas

shmia 11. Mai 2007 17:41

Re: Netzwerkmonitor multiuserfähig machen...
 
Zitat:

Zitat von EConvertError
1) Wie kommuniziere ich am besten mit dem Service? Named Pipes, TCP, MMFs?
2) Wie starte/stoppe ich einen Service per Delphi Code (von einem anderen Programm aus, versteht sich).

Zu 1.) TCP würde ich vermeiden, da es Traffik auf der internen IP 127.0.0.1 erzeugt
Für den Anfang würde ich mal nur eine INI-Datei vorsehen. Beim Start des Dienstes wird die INI-Datei gelesen und das war's.
Bei Änderungen der Parameter Dienst stoppen & neu starten.

Zu 2.) siehe Jedi Code Library -> Unit JclSvcCtrl -> Klasse TJclNtService
Beispielprogramm ist bei JCL enthalten.

Alter Mann 11. Mai 2007 18:09

Re: Netzwerkmonitor multiuserfähig machen...
 
Hi,

Multiuser-Betriebssystem bei Delphi(Win32),
habt ihr solche Power-User die mittels RunAs mehrere
Programme unter verschidenen Anmeldungen laufen lassen?

Kaum vorstellbar.

Zu 1) Klassisch : Named Pipes
Modern(W2K3) : Message Quering (Setzt aber ADS voraus)

Zu 2) Wurde die Antwort schon gegeben.

Gruss

EConvertError 11. Mai 2007 18:19

Re: Netzwerkmonitor multiuserfähig machen...
 
Vielen Dank!

Nein, es gibt keine derartigen Power-User. Aber es ist oft der Fall, dass mehrere User angemeldet sind ("Benutzer wechseln" anstatt abzumelden). Dadurch wäre es wohl schwierig das Speichern der Logdatei bei mehreren geöffneten Instanzen richtig zu synchronisieren, weshalb ich jetzt ein Service mit einem Desktop-Programm pro angemeldetem User probieren möchte.

Ansonsten danke ich euren Antworten und werde mich mal damit spielen...

Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 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