Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi NetworkDrive Disconnect *speziel* (https://www.delphipraxis.net/112683-networkdrive-disconnect-%2Aspeziel%2A.html)

danykoston 25. Apr 2008 09:22


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:
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
^^ na so "sollte" es aussehen
-> "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!

marabu 25. Apr 2008 09:43

Re: NetworkDrive Disconnect *speziel*
 
Hi,

versuche es mal mit DriveExists().

Grüße vom marabu

danykoston 25. Apr 2008 12:59

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

RWarnecke 25. Apr 2008 13:06

Re: NetworkDrive Disconnect *speziel*
 
Mit diesem Codeschnipsel von meiner Webseite kannst Du Netzlaufwerke trennen und verbinden.

ringli 25. Apr 2008 13:09

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;

danykoston 25. Apr 2008 13:21

Re: NetworkDrive Disconnect *speziel*
 
ringli

*rotwerd*

wie muss ich

"FuncResult := WNetGetConnection(lpLocalName, lpRemoteName, lpnLength); "


lpLocalName, lpRemoteName, lpnLength - deklarieren -.- *kopfrauch*

ringli 25. Apr 2008 13:38

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 02:53 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