Hallo Leute,
fangen wir doch mit dem ersten Schritt an...
Wie erkenne ich, ob ein Netzlaufwerk verbunden ist?
Ich habe dazu folgende Funktion gefunden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| function GetNetworkDriveConnection(const Laufwerk,Verzeichnis: String): boolean; var lpnLength: Cardinal; FuncResult: DWORD; lpLocalName: PChar; lpRemoteName: PChar; RemoteName: String; begin lpLocalName:=AllocMem(MAX_PATH+1); lpRemoteName:=AllocMem(MAX_PATH+1); StrPCopy(lpLocalName,Laufwerk); lpnLength:=MAX_PATH; FuncResult:=WNetGetConnection(lpLocalName,lpRemoteName,lpnLength); RemoteName:=lpRemoteName; if (FuncResult=0) AND (Verzeichnis=RemoteName) then Result:=true else Result:=false; FreeMem(lpLocalName); FreeMem(lpRemotename); end; |
Mit meinem Programm verbinde ich nun also ein Netzlaufwerk.
Dann starte ich einen Timer der regelmäßig über obenstehende Funktion die Verbindung zu meinem Netzlaufwerk prüft.
Anschließend ziehe ich das Netzwerkkabel von meinem PC ab.
ABER: Keine Reaktion. Die Funktion bemerkt nicht, dass das Netzlaufwerk nicht mehr verbunden ist.
Woran liegt das?
Edit: baka0815 hat natürlich recht. Es muss WNetGetConnection heißen.