Einzelnen Beitrag anzeigen

paritycheck

Registriert seit: 8. Feb 2005
51 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Netzlaufwerk verbunden, aber nicht bereit

  Alt 25. Mai 2009, 13:04
Das könnte daran liegen, das Windows aktive SMB Sessions Standardmäßig nach 15 Minuten trennt und diese dann erst wieder aktiviert wird wenn Du zB im Explorer auf das "verbundene" Laufwerk klickst. Bis Windows XP kann ich dir dafür ne Funktion anbieten, die API wurde allerdings bei Vista entfernt und ich habe bis jetzt auch noch keinen anständigen Ersatz finden können.

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:= ERROR_EXTENDED_ERROR;
   driveW := ExtractFileDrive(path);
   if driveW='then
      Exit;

   libhandle := LoadLibrary('mpr.dll');
   Result := 0;
   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;
Rückgabewerte und mehr Infos hier.
  Mit Zitat antworten Zitat