Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Suche nach Computern & Arbeitsgruppen in Thread auslagern? (https://www.delphipraxis.net/93996-suche-nach-computern-arbeitsgruppen-thread-auslagern.html)

Mazel 14. Jun 2007 13:39


Suche nach Computern & Arbeitsgruppen in Thread auslager
 
Hallo,

mit folgendem Code von swissdelphicenter lese ich sowohl die Computer als auch Arbeitsgruppen in einem Netzwer aus: ...Alle Computer im Netzwerk ermitteln?

Der Code beschreibt zwar nur wie man alle Computer auflistet aber mit RESOURCEDISPLAYTYPE_DOMAIN statt RESOURCEDISPLAYTYPE_SERVER erhält man auch die Arbeitsgruppen.
Soweit funktioniert auch alles, aber auf manchen Rechnern dauert die Abfrage ziemlich lange so dass sich das Programm aufhängt, wenn man nicht wartet.

Nun stellt sich die Frage, wie ich diese Aktion in ein Thread auslagern muss, damit es funktioniert.

Ich habe auch schon überlegt Application.ProcessMessages zu verwenden, dann ist da aber wieder die Frage, an welcher Stelle ich das einsetzen muss.

Hat jemand da einen Rat für mich?

Gruß
Mazel

marabu 14. Jun 2007 17:00

Re: Suche nach Computern & Arbeitsgruppen in Thread ausl
 
Hallo Marcel,

keine Ahnung was genau dein Problem ist. Der Domain Browser braucht eine Weile bis er alle Einträge zurückgemeldet bekommen hat. Das ist auch der Fall, wenn du mit dem Windows Explorer suchst. Die Anzeige kann allerdings drastisch beschleunigt werden, wenn du beim Aufruf die visuelle Aktualisierung abschaltest:

Delphi-Quellcode:
begin
  ListBox1.Items.BeginUpdate;
  ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
  ListBox1.Items.EndUpdate;
end;
Alternativ kannst du die Arbeitsgruppen und Computer auch mittels SHBrowseForFolder() suchen.

Grüße vom marabu

Mazel 14. Jun 2007 18:28

Re: Suche nach Computern & Arbeitsgruppen in Thread ausl
 
Die visuelle Aktualisierung ausschalten ist sicher eine gute Idee, leider bei mir so nicht anwendbar, konntest du ja auch nicht wissen :wink: . Die visuelle Aktualisierung ist im Prinzip schon abgeschalten, da ich die Daten in eine Stringlist lade und nicht direkt in eine ListBox jedes einzelne Item Adde. Meine Daten werden erst später in einer Schleife ausgegeben.

Bei mir geht es ja sehr schnell, hin und wieder dauert es mal 1 bis 2 Sekunden aber nicht mehr als 2 Minuten wie auf anderen Rechnern, das ist ja das was mich verwundert.

Gruß
Mazel


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