Das Problem hatte ich auch schon und habe mir dazu folgende Prozedure geschrieben:
Delphi-Quellcode:
type
TWNetRestoreConnectionW = function (hwndParent:HWND; lpDevice:PWideChar):DWORD; stdcall;
function ReconnectDrive(const path:string):DWORD;
var
libhandle : HMODULE;
func : TWNetRestoreConnectionW;
driveW : WideString;
begin
Result := 0;
driveW := ExtractFileDrive(path);
if driveW='' then
Exit;
libhandle := LoadLibrary('mpr.dll');
if libhandle=0 then
Exit;
try
func := TWNetRestoreConnectionW(GetProcAddress(libhandle, 'WNetRestoreConnectionW'));
if Assigned(func) then
Result := func(0, @driveW[1]);
finally
FreeLibrary(libhandle);
end;
end;
Bitte hier rückmelden, ob es funktioniert.
Meine Tests liegen schon lange zurück, so dass es mich interessieren würde,
ob das wirklich klappt.
WNetRestoreConnectionW gibt es anscheinend nicht unter Vista und höher.
Hier wäre Jugend-Forscht gefragt.