Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Netzwerkfreigabe überwachen (https://www.delphipraxis.net/64875-netzwerkfreigabe-ueberwachen.html)

Luckie 9. Mär 2006 13:54


Netzwerkfreigabe überwachen
 
Ich verbinde mich mit einem Netzlaufwerk. Jetzt muss ich aber mitkriegen, wann diese verbindung nicht mehr steht. Sei es weil das Netzwerk zusammengebrochen ist oder der Server abgestürzt ist, Jetzt könnte ich mit WNetOpenEnum ständig gucken, ob das Netzlaufwerk noch erreichbar ist. Nur wie sieht es da mit der Performance aus und was für eine Netzwerklast verursacht das? Oder gibt es da eine bessere Möglichkeit?

freak4fun 9. Mär 2006 14:01

Re: Netzwerkfreigabe überwachen
 
Du könntest das WNetOpenEnum immer vor eine Zugriff auf das Netz benutzen, um sicherzustellen, das du Erfolg hast.

MfG
freak

Luckie 9. Mär 2006 14:04

Re: Netzwerkfreigabe überwachen
 
Stimmt auch wieder. Muss ich mir mal durch den Kopf gehen lassen.

shmia 9. Mär 2006 14:16

Re: Netzwerkfreigabe überwachen
 
Vielleicht hilft dir das weiter.
Allerdings:
[WNetRestoreConnectionW is available for use in the Microsoft Windows 2000 and Windows XP operating systems. It may be altered or unavailable in subsequent versions.]

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
   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;

Luckie 9. Mär 2006 14:25

Re: Netzwerkfreigabe überwachen
 
Hm, ja, kann ich eventuell dann gebrauchen, wenn ich die Verbindung verliere, mal gucken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz