![]() |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
das is alles O.o
mehr brauchts dazu net? oder muss ich das in den alte code einfügen? achja:und wenn das alles is: tuts das unter win9x/2000/XP? |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
@Assarbad: Dein Source ist für den C++ Builder? Damit kann Delphi doch nix anfangen, oder?
@webhuhn: Ich bezog mich auf die erste Seite dieser Diskussion. Da hatte ich den Code gepostet. Schaue da noch mal nach, Du musst nur noch die uses ergänzen, bis er nicht mehr meckert. Gehen sollte es unter allen Systemen. |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
achso, danke :D
dass es unter allen systeme läuft wäre gut ,weil das, was ich im moment hab tuts unter Win9X irgendwie net.. :-( edit: mhh.. der meckert :( welche uses muss ich ergänzen? ShellApi hab ich ergänz aber funktionieren tuts net |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
so sollte es tun (aber jetzt nicht getestet):
Delphi-Quellcode:
Aber Achtung! Bei großen Netzwerken kann das eine Weile dauern.
unit Unit1;
interface uses Windows; implementation function RechnerInWG(lpnr: PNetResource): Boolean; procedure AddComputerToList(Value: TNetResource); var strRemoteName: String; begin strRemoteName := Value.lpRemoteName; if Value.dwDisplayType <> RESOURCEDISPLAYTYPE_SERVER THEN Exit; ListBox.Items.Add(strRemoteName); end; const // RESOURCE_CONNECTED RESOURCE_CONTEXT RESOURCE_GLOBALNET RESOURCE_REMEMBERED c_dwScope = RESOURCE_GLOBALNET; // RESOURCETYPE_ANY RESOURCETYPE_DISK RESOURCETYPE_PRINT c_dwType = RESOURCETYPE_DISK; var cbBuffer: DWORD; hEnum, dwResult, dwResultEnum : DWORD; lpnrLocal : array [0..16384 div SizeOf(TNetResource)] of TNetResource; i : Integer; cEntries : Longint; begin // // basiert auf Microsoft Beispiel "Enumerating Network Resources" in C++ // // [url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wnet/networks_77sj.asp[/url] // cbBuffer := 16384; centries := -1; dwResult := WNetOpenEnum( c_dwScope, c_dwType, 0, // 0 = All resources lpnr, hEnum); if dwResult <> NO_ERROR then begin Result := False; // Fehlerbehandlung('Fehler bei WNetOpenEnum (%d)',[dwResult]); Exit; end; FillChar( lpnrLocal, cbBuffer, 0 ); dwResultEnum := WNetEnumResource(hEnum, DWORD(cEntries), @lpnrLocal, cbBuffer); if dwResultEnum = NO_ERROR then begin // dwResultEnum = NO_ERROR for i := 0 to cEntries - 1 do begin AddComputerToList(lpnrLocal[i]); if (c_dwScope = RESOURCE_GLOBALNET) AND (RESOURCEUSAGE_CONTAINER = (lpnrLocal[i].dwUsage AND RESOURCEUSAGE_CONTAINER)) then RechnerInWG(@lpnrLocal[i]); end; end // dwResultEnum = NO_ERROR else begin // dwResultEnum <> NO_ERROR IF dwResultEnum <> ERROR_NO_MORE_ITEMS THEN begin Result := False; // Fehlerbehandlung (Format('Fehler bei WNetEnumResource (%d)',[dwResultEnum])); Exit; end; end; // dwResultEnum <> NO_ERROR dwResult := WNetCloseEnum(hEnum); if dwResult <> NO_ERROR then begin Result := False; // Fehlerbehandlung (Format('Fehler bei WNetCloseEnum (%d)',[dwResult])); Exit; end; Result := True; end; end. |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
erstmal danke :D
aber warum meckert er da :
Code:
das da:
procedure AddComputerToList(Value: TNetResource);
var strRemoteName: String; begin strRemoteName := Value.lpRemoteName; if Value.dwDisplayType <> RESOURCEDISPLAYTYPE_SERVER THEN Exit; ListBox.Items.Add(strRemoteName); end; [Error] Unit1.pas(30): Undeclared identifier: 'ListBox' [Error] Unit1.pas(30): Missing operator or semicolon [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' ? thx 4 hlp |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
Das ist die Listbox, die die Routine befüllen will. Die musst Du natürlich angeben, also z.B.:
Delphi-Quellcode:
Form1.ListBox1.Items.Add(strRemoteName);
|
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
hatte mich einfach vertippt :-(
sry :( tuts jetzt, danke nochmal :D #edit: auch auf 98 :D BIG THX :D |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
hi
ich bins ( schon wieder ;D ) gibt es auch eine möglichkeit den Progress des Rechnersuchens mit ner Progressbar darzustellen? thx 4 hlp |
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
Zitat:
|
Re: Alle Arbeitsgruppen, alle Rechner und dann alle freigabe
Moin!
werden auch Rechner mit Linux aufgelistet?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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