![]() |
Computer aus Netzwerk auslesen
Hy@all
Ich habe hier schon die Routine gefunden das ich im Netz nach Computer scannen kann hier ist der Code
Delphi-Quellcode:
gebe das ganze dann in eine ChecklistBox aus nur ist bei der Ausgabe immer \\Computername
// --- Netzwerk nach Computer durchsuchen -------------------------------------- //
type PNetResourceArray = ^TNetResourceArray; TNetResourceArray = array[0..100] of TNetResource; function CreateNetResourceList(ResourceType: DWord; NetResource: PNetResource; out Entries: DWord; out List: PNetResourceArray): Boolean; begin Result := False; List := Nil; Entries := 0; if WNetOpenEnum(RESOURCE_GLOBALNET, ResourceType, 0, NetResource, EnumHandle) = NO_ERROR then begin try BufSize := $4000; // 16 kByte GetMem(List, BufSize); try repeat Entries := DWord(-1); FillChar(List^, BufSize, 0); Res := WNetEnumResource(EnumHandle, Entries, List, BufSize); if Res = ERROR_MORE_DATA then begin ReAllocMem(List, BufSize); end; until Res <> ERROR_MORE_DATA; Result := Res = NO_ERROR; if not Result then begin FreeMem(List); List := Nil; Entries := 0; end; except FreeMem(List); raise; end; finally WNetCloseEnum(EnumHandle); end; end; end; procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings); procedure ScanLevel(NetResource: PNetResource); var Entries: DWord; NetResourceList: PNetResourceArray; i: Integer; begin if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try for i := 0 to Integer(Entries) - 1 do begin if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or (NetResourceList[i].dwDisplayType = DisplayType) then begin List.AddObject(NetResourceList[i].lpRemoteName, Pointer(NetResourceList[i].dwDisplayType)); end; if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then ScanLevel(@NetResourceList[i]); end; finally FreeMem(NetResourceList); end; end; begin ScanLevel(Nil); end; // --- Netzwerk durchsuchen ENDE ------------------------------------------------ // jetzt würde ich gerne die \\ wegbekommen wie kann man das realisieren oder geht das überhaupt Danke MFG StoRmtec |
Re: Computer aus Netzwerk auslesen
Guck dir mal in der Hilfe die Funktion copy an.
|
Re: Computer aus Netzwerk auslesen
Hallo,
Guck dir mal in der Hilfe die Funktion Delete an. Gruß Question_mark |
Re: Computer aus Netzwerk auslesen
Warum das verstehe ich jetzt ehrlich gesagt nicht
Delphi-Quellcode:
so wird es ausgegeben wenn ihr das meint
procedure Tfrm_netz.btn_durchsuchenClick(Sender: TObject);
begin ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, CheckListBox1.Items); end; |
Re: Computer aus Netzwerk auslesen
Du hast nicht wirklich in der Hilfe geguckt oder?
|
Re: Computer aus Netzwerk auslesen
Nein Habe ich nicht wenn ich ehrlich bin aber ich verstehe es auch nicht was das mit Copyzu tun hat.
Danke |
Re: Computer aus Netzwerk auslesen
Wie oben angedeutet, entweder mit Delete() die ersten beiden Zeichen löschen oder mit Copy() ab dem 3. Zeichen kopieren. Beides dürfte im Endeffekt das gewünschte Ergebnis liefern.
|
Re: Computer aus Netzwerk auslesen
Zitat:
|
Re: Computer aus Netzwerk auslesen
Hallo
Kenne mich zwar immer noch nicht aus wie ihr das meint mit dem delet oder copy weil ich sehe ja da überhaupt nicht die ausgabe??? |
Re: Computer aus Netzwerk auslesen
Hallo StormTec,
mit
Delphi-Quellcode:
holst Du dir Deine Daten.
procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);
Die liegen dann ungefähr in folgender Form vor
Delphi-Quellcode:
hiermit kannst du dann die ausgegebenen Daten manipulieren:
//computer1
//computer2 ....
Delphi-Quellcode:
bei dem copy bin ich mir aber nicht sicher ob das so geht, ggf. auch hier mit einer Zwischenvariablen arbeiten.
for i:=0 to List.count-1 do begin
dummy:=list[i]; delete(dummy,1,2); list[i]:=dummy; end; oder List[i]:=copy(List[i],3,length(list[i])-2); Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz