Es funktioniert
Die Funktion findet auf meinem XP Rechner sogar versteckte Freigaben die mir gar nicht bekannt waren.
Da ich ja nur die freigegebenen Festplatten brauche, habe ich noch kleine Änderungen vorgenommen. Hier ist der Code für die übrigen DPler:
Einmal die Deklaration für "Share_Info_2". Dieser ermittelt auch den Freigaben Typ in "shi2_type":
Delphi-Quellcode:
type
PSHARE_INFO_2 =^SHARE_INFO_2;
SHARE_INFO_2 = packed record
shi2_netname : PWChar;
shi2_type : Dword;
shi2_remark : PWChar;
shi_permissions : DWord;
shi2_max_uses : DWord;
shi2_current_uses : DWord;
shi2_path : PWChar;
shi2_passwd : PWChar;
end;
Und hier das Auflisten von freigegebenen Festplatten.
Delphi-Quellcode:
procedure TForm3.SpeedButton2Click(Sender: TObject);
var
si2Work : PSHARE_INFO_2;
si2Save : PSHARE_INFO_2;
dwEntriesRead : DWORD;
dwTotalEntries : DWORD;
i : DWORD;
begin
if NetShareEnum(nil,2,@si2Work,MAX_PREFERRED_LENGTH,@dwEntriesRead,@dwTotalEntries,nil) <> Nerr_Success then exit;
try
si2Save := si2Work;
for i := 1 to dwEntriesRead do
begin
if si2Save.shi2_type = STYPE_DISKTREE then
ComboBox1.Items.Add(si2Save.shi2_netname);
inc(si2Save);
end;
finally
NetApiBufferFree(si2Work);
end;
end;
Eine Frage hätte ich aber noch. Wie schaffe ich es, das mein Programm auch unter 9x funktioniert
Hier sind die benötigten Funktionen ja in der "SvrApi.dll".
Thx Salomon