Einzelnen Beitrag anzeigen

Benutzerbild von CrashMan
CrashMan

Registriert seit: 31. Jul 2003
Ort: //127.0.0.1/
65 Beiträge
 
Delphi 6 Personal
 
#1

Freigaben im Netzwerk suchen

  Alt 27. Nov 2003, 20:39
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;
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?

CrashMan
  Mit Zitat antworten Zitat