![]() |
NetworkDrive Disconnect *speziel*
Hi Leute,
ich hab wieder mal ein problem :-) -> ich habe auch schon ausreichend gesucht und hierzu leider nichts passendes gefunden was mir die ganze Sache löst etc. pp kurz zur info habe ne Prozdeur in meinem Programm die erfolgreich sich mit user und pw zu einem Fixen Netzlaufwerk verbindet ! (<< klappt wunderbar) so meine Frage jetzt: ich bräuchte eine Art "if Exists Procedure" aber ich bekommes um gotteswillen wirklich nicht hin -.-
Delphi-Quellcode:
^^ na so "sollte" es aussehen
procedure TFrmMain.closeConnection;
begin //TODO: abprüfen ob verbindung besteht: wenn ja -> verbindung trennen wenn nein tue nichts //Result:=WNetCancelConnection2("o:", CONNECT_UPDATE_PROFILE, FALSE); // Disconnectdrive("o:"); if ConnectNetworkDrive('O:','\\xxx.xxx.xxx.xxx\dir$' , 'user', 'pw', False)=true then begin // WNetCancelConnection2('O:','xx','xx ', dwFlags); lblStatus.Caption := FLanguage.getText('IDNE09'); end end -> "wenn netzlaufwerk "O:" existiert dann trennen sonst tue nichts ende " ich habe auch schon einige sachen getestet , jedoch ohne Erfolg -.- wie ihr an den auskommentierten Befehlen sehen könnt! vllt kann mir einer oder Ihr helfen dass in Griff zu bekommen -.- denn ich bin am ende meines Lateins :-) wäre super wenn ihr mir helfen könntet! |
Re: NetworkDrive Disconnect *speziel*
|
Re: NetworkDrive Disconnect *speziel*
danke marabu für deine antwort !
wie würde dann der codeschnippsel "aussehen" wenn ich ein fixes laufwerk trennen möchte ? dank danykoston |
Re: NetworkDrive Disconnect *speziel*
Mit diesem
![]() |
Re: NetworkDrive Disconnect *speziel*
Versuch es mal so:
Delphi-Quellcode:
var
FuncResult : DWORD; begin FuncResult := WNetGetConnection(lpLocalName, lpRemoteName, lpnLength); if FuncResult <> NO_ERROR then begin // tue etwas end; end; |
Re: NetworkDrive Disconnect *speziel*
ringli
*rotwerd* wie muss ich "FuncResult := WNetGetConnection(lpLocalName, lpRemoteName, lpnLength); " lpLocalName, lpRemoteName, lpnLength - deklarieren -.- *kopfrauch* |
Re: NetworkDrive Disconnect *speziel*
Das Ganze mal als komplette Funktion verpackt. Diese Funktion gibt den Pfad eines angegebenen Netzlaufwerkes zurück. Ist dies nicht möglich wird einfach der angegebene Laufwerksbuchstabe zurückgegeben. Musst du halt ein wenig auf deine Bedürfnisse anpassen.
Delphi-Quellcode:
function NetDriveQuery (localDrive : String) : String;
var lpLocalName : PChar; lpRemoteName : PChar; FuncResult : DWORD; lpnLength : Cardinal; begin // Speicher für die Strings allozieren! lpLocalName := AllocMem(MAX_PATH + 1); lpRemoteName := AllocMem(MAX_PATH + 1); // String in PString kopieren StrPCopy (lpLocalName, localDrive); lpnLength := MAX_PATH; FuncResult := WNetGetConnection(lpLocalName, lpRemoteName, lpnLength); if FuncResult <> NO_ERROR then begin Result := lpLocalName; end else begin Result := lpRemoteName; end; // aufräumen! FreeMem(lpRemoteName); FreeMem(lpLocalName); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz