Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi WMI Ping(?)-Problem (https://www.delphipraxis.net/115023-wmi-ping-problem.html)

CasaN 4. Jun 2008 14:34


WMI Ping(?)-Problem
 
hallo,

hab kleines programm geschrieben wo ich die rechner aus einer liste (txt-datei) auslese und wmi untersuchen will. an sich läuft alles, nur wenn ein rechner nicht erreichbar ist (off oder was auch immer) dauert es länger bis mein programm wieder reagiert. wenn es mehr als 5 sind dauert es ne halbe ewigkeit :-( mein aufruf sieht so aus:

Delphi-Quellcode:
try (WMIGetInfo('rechnername aus der liste', 'root\CIMV2', 'benutzer', 'passwort', Trim('SELECT * FROM Win32_OperatingSystem'), WMIResults)) except end;
was mach ich falsch bzw was kann ich machen damit wenn ein rechner off ist nicht so lange dauert??

thx
casan

Phoenix 4. Jun 2008 14:50

Re: WMI Ping(?)-Problem
 
Vorher anpingen.

Ein WMI-Connect versucht genau das: zu verbinden. Und wenn der Zielrechner nicht erreichbar ist kommt der Aufruf eben erst nach dem Timeout zurück. Und so lange ist Dein Prozess blockiert. Da hast Du noch nichtmal Einfluss drauf.

Eine Idee wäre es allerhöchstens, mehrere Threads zu starten und einige Rechner gleichzeitig abzufragen. Dann laufen halt n Timeouts gleichzeitig ab und nicht nacheinander.

CasaN 4. Jun 2008 15:00

Re: WMI Ping(?)-Problem
 
@Phoenix: wie meinst du anpingen? aus cmd? in look@lan geht es doch auch nach einnander und ohne das die maske einfriert

wenn die rechner on sind geht es sehr schnell, aber pro off rechner sind es dann 10sek mehr :-(

Phoenix 4. Jun 2008 15:06

Re: WMI Ping(?)-Problem
 
Mit Anpingen meine ich genau das: Ping-Pakete versenden und die Antworten auswerten.

Zitat:

Zitat von CasaN
und ohne das die maske einfriert

Wenn die auch WMI nutzen dann haben die entweder einen Workerthread laufen oder aber sie benutzen die asynchronen WMI-Zugriffe (was das gleiche ist, nur eben hinter den Kulissen).

CasaN 4. Jun 2008 15:36

Re: WMI Ping(?)-Problem
 
mit
Delphi-Quellcode:
Form1.Refresh;
gehts auch ;-) da bleibt die maske ganz "fresh" ;-)) so sieht man jetzt wo man gerade "ist"


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