Inzwischen habe ich auf "shi2_type" geschaut. Somit kann ich schon mal diese C$,D$,ADMIN$,
IPC$ ausblenden lassen (sie haben den Wert "[Disk] und [Special]"). Dagegen haben meine hinzugefügten Ordner nur den Wert "[Disk]". Damit kann man "shi2_type" auswerten lassen.
Delphi-Quellcode:
const
STYPE_DISKTREE = 0;
STYPE_PRINTQ = 1;
STYPE_DEVICE = 2;
STYPE_IPC = 3;
STYPE_TEMPORARY = $40000000;
STYPE_SPECIAL = $80000000;
function ShareTypeToStr(SType : DWORD) :
String;
begin
case SType
and $FFFF
of
STYPE_DISKTREE: Result := '
[Disk]';
STYPE_PRINTQ: Result := '
[Printer]';
STYPE_DEVICE: Result := '
[Device]';
STYPE_IPC: Result := '
[IPC]';
else
Result := '
[Type0x' + IntToHex(SType, 8) + '
]';
end;
if (SType
and STYPE_SPECIAL) <> 0
then
Result := Result + '
[Special]';
if (STYpe
and STYPE_TEMPORARY) <> 0
then
Result := Result + '
[Temporary]';
end;
Leider hat nun ein Drucker (print$) kein "[Special]" dabei. Nur "[Disk]". Dieser Eintrag sollte natürlich auch als nicht hinzugefügten freigegebenen Ordner erkannt werden. Aber ich bin ja schon mal weiter. Ich frage mich auch, was "[Temporary]" sein kann, um damit mal zu testen.
Mir ist das mit dem Netzwerk-Zeugs alles noch etwas unlogisch. Keine Erfahrung damit. Habe auch nur einen PC. Bei der Funktion "NetShareEnum" kann man anstatt "nil" (steht ja für Lokal) auch einen Computernamen angeben. Wie kann ich damit denn mal herumtesten?