Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Freigaben im Netzwerk suchen (https://www.delphipraxis.net/12459-freigaben-im-netzwerk-suchen.html)

CrashMan 27. Nov 2003 20:39


Freigaben im Netzwerk suchen
 
Ich habe hier ne Funktion:

Delphi-Quellcode:
Type
TShareInfo2 = packed record
 shi2_netname : PWChar;
 shi2_type: DWORD;
 shi2_remark :PWChar;
 shi2_permissions: DWORD;
 shi2_max_uses : DWORD;
 shi2_current_uses : DWORD;
 shi2_path : PWChar;
 shi2_passwd : PWChar;
end;
 PShareInfo2 = ^ TShareInfo2;
 TShareInfo2Array = array [0..512] of TShareInfo2;
 PShareInfo2Array = ^ TShareInfo2Array;
Delphi-Quellcode:
Function NetShareEnum (servername:PWChar; level:DWORD; bufptr:Pointer; prefmaxlen:DWORD; entriesread, totalentries, resume_handle:LPDWORD): DWORD; stdcall; external 'netapi32.dll';
Mit der kann ich nach Freigaben suchen *angeblich*.
Solange ich nix angebe als Servernamen oder meine IP, klappt das auch soweit ganz gut, aber sobald ich eine IP eines anderen PCs angebe, tut das nicht.

Delphi-Quellcode:
procedure TMain.Button1Click(Sender: TObject);
var Share: PShareInfo2Array;
    EntriesRead, TotalEntries:DWORD;
    i, Length: Integer;
    Name: String;
    Server: PWideChar;
begin
Main.ListBox1.Clear;
Share := nil;

Name := ''; {*** -Hier- ***}
Length := SizeOF(WideChar)*256;
GetMem(Server, Length);
StringToWideChar(Name, Server, Length);
if NetShareEnum(Server,2,@Share,DWORD(-1), @EntriesRead, @TotalEntries,nil) <> 0 then Exit;
if EntriesRead > 0 then
  for i:= 0 to entriesread - 1 do
    Main.ListBox1.Items.Add(String(Share^[i].shi2_netname));
FreeMem(Server);

end;
Kann da kurz wer weiterhelfen? :mrgreen:

CrashMan :bounce2: :spin: :dance:

Christian Seehase 27. Nov 2003 22:50

Re: Freigaben im Netzwerk suchen
 
Moin Crashman,

hat der angegebene Rechner auch ein NT basiertes Betriebssystem?

Übrigens musst Du noch den Buffer (Share) wieder freigeben.
Schau Dir dazu mal am Besten die Dokumentation zu NetShareEnum im PSDK bzw. MSDN an.

CrashMan 28. Nov 2003 09:30

Re: Freigaben im Netzwerk suchen
 
Ich hab mir das in der MSDN angeguckt...muss der andeere auch ein NT-basierendes haben? Der andere hat nämlich Win98 ... :gruebel:
Geht das auch irgentwie?

CrashMan

MrKnogge 28. Nov 2003 09:40

Re: Freigaben im Netzwerk suchen
 
Meines wissens nicht, erst Win2000 oder NT, da musst du dir wohl n kleines tool schreiben....

Christian Seehase 28. Nov 2003 18:49

Re: Freigaben im Netzwerk suchen
 
Moin Crashman,

Zitat:

Zitat von CrashMan
muss der andeere auch ein NT-basierendes haben?

Soweit ich weiss müssen die Betriebssysteme übereinstimmen, zumal die Funktionen auf beiden Versionen unterschiedlich sind.

Du könntest Dir allerdings ersatzweise mal WNetEnumResource anschauen.
Damit müsste das, wenn auch eingeschränkt, betriebssystemübergreifend funktionieren.


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