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