Vor einiger Zeit habe ich mir einen RTD-Server programmiert, der andere Teilnehmer im Netzwerk anpingt. Das funktioniert im WWW, aber natürlich auch in lokalen Netzwerken.
Starten Sie die Installation mit einem Doppelklick auf die Datei rtdping.msi, und folgen Sie den Anweisungen.
Sobald das Programm auf Ihrem PC installiert ist, ist es einsatzbereit. Sie können nun eine Excel-Instanz erstellen, und den RTD-Server mit der RTD-Funktion starten. Der RTD-Server wird lokal auf dem PC ausgeführt. Als Resultat der RTD-Funktion wird die Erreichbarkeit eines Computers geprüft, und WAHR oder FALSCH zurückgegeben. Das kann man dann z.B. mit der bedingten Formatierung kombinieren, oder auch ein Makro starten. Zur Installation sind Administratorrechte erforderlich. In der Demoversion ist die Anzahl der gleichzeitig möglichen RTD-Funktionen auf 3 limitiert.
Intern geschieht das Anpingen der verschiedenen Adressen über einen Timer. In der Default-Einstellung beträgt diese Frequenz 5000ms (5 Sekunden). Diesen Wert kann man aber bei Bedarf ändern. Sobald der Timer läuft wird die Ping-Funktion ausgelöst. Das Anpingen der einzelnen Teilnehmer erfolgt hierbei asynchron, wodurch Alles sehr flott abläuft. Hier ist es möglich einen Zeitwert TimeOutAll anzugeben (Default 2000ms) innerhalb dessen alle Ping-Versuche abgeschlossen sein sollen. Für jede einzelne Ping-Funktion ist ein TimeOut (Default 200ms) vorgesehen. Ist nach Ablauf dieses Zeitintervalls kein erfolgreicher Ping möglich, wird FALSCH zurück gegeben. Im Erfolgsfall dagegen ein WAHR.
Das Programm registriert sich zwar im HKLM, doch die Werte für Frequency, TimeOut und TimeOutAll werden für jeden USER separat gespeichert. Die Werte sind unter HKEY_CURRENT_USER\Software\VB and VBA Program Settings\rsrtdserver\Ping abgelegt, und können bei Bedarf angepasst werden.
Hierbei gilt ...=RTD("rsrtdserver.ping";;"127.0.0.1")
Der Aufruf der RTD-Funktion ist denkbar einfach. Es wird nur die Netzwerkadresse übergeben (s.a. GetHostIP), und zwar in Form eines IPv4-dotted-decimal.
=RTD("rsrtdserver.ping";;"127.0.0.1";50)
Optional kann für jede Funktion ein zweiter Parameter übergeben werden, der die TimeOut-Standardeinstellung überschreibt.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||