Ich hatte auch ein ähnliches Problem und habe es so gelöst.
Laufwerk verbinden:
Delphi-Quellcode:
function Verbinden(Laufwerk: string; Pfad: string; Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
if Laufwerk[length(Laufwerk)] = '\' then
Laufwerk:=copy(Laufwerk,0,length(Laufwerk) - 1);
if pos(':',Laufwerk) = 0 then
Laufwerk:= Laufwerk + ':';
if Pfad[length(Pfad)] = '\' then
Pfad:=copy(Pfad,0,length(Pfad) - 1);
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
lpLocalName := PChar(Laufwerk);
lpRemoteName := PChar(Pfad);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
Laufwerk trennen:
Delphi-Quellcode:
function Trennen(Laufwerk: string): DWORD;
begin
if Laufwerk[length(Laufwerk)] = '\' then
Laufwerk:=copy(Laufwerk,0,length(Laufwerk) - 1);
Result := WNetCancelConnection2(PChar(Laufwerk),0,false);
end;
Denke der Funktionaufruf muss nicht weiter beschrieben werden.
Vielleicht hilft dir das.