Hey,
Ich möchte für sehr viele Rechner im Netzwerk prüfen ob ein bestimmter Prozess aktiv ist.
Mein code sieht bis jetzt so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| try { bool activ = false; if (Ping(Host)) { Process[] Processes = Process.GetProcessesByName(Prozessname, Host); if (Processes.Length != 0) activ= true; else activ = false; } return active; } catch (Exception) { return false; } |
Funktionier auch wunderbar aber es ergibt sich ein Problem.
Wird ein Rechner genau zum Zeitpunkt der Prüfung heruntergefahren (d.h. ping bekommt Antwort)
aber ich bekomme keine Antwort auf meine GetProcessesByName. Diese Funktion versucht ziemlich lange den Process zun finden und
wirft dann eine Exception, die ich nat abfange und dann als Ergebnis false zurückgebe.
Also es funktioniert somit schon aber dadurch ergeben sich lange Wartezeiten da die Exception erst nach fast +/- 10sec geworfen wird.
Kann ich irgendwie nach dem Ping noch eine Eigenschaft prüfen die auskunft darüber gibt ob Windows gerade heruntergefahren wird/ oder ich noch Zugriff auf Prozesse habe?
Gruß Xcalibur