AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi NetworkDrive Disconnect *speziel*
Thema durchsuchen
Ansicht
Themen-Optionen

NetworkDrive Disconnect *speziel*

Ein Thema von danykoston · begonnen am 25. Apr 2008 · letzter Beitrag vom 25. Apr 2008
Antwort Antwort
danykoston

Registriert seit: 21. Sep 2006
6 Beiträge
 
#1

NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 10:22
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!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 10:43
Hi,

versuche es mal mit DriveExists().

Grüße vom marabu
  Mit Zitat antworten Zitat
danykoston

Registriert seit: 21. Sep 2006
6 Beiträge
 
#3

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 13:59
danke marabu für deine antwort !

wie würde dann der codeschnippsel "aussehen"

wenn ich ein fixes laufwerk trennen möchte ?

dank

danykoston
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 14:06
Mit diesem Codeschnipsel von meiner Webseite kannst Du Netzlaufwerke trennen und verbinden.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
510 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 14:09
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;
  Mit Zitat antworten Zitat
danykoston

Registriert seit: 21. Sep 2006
6 Beiträge
 
#6

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 14:21
ringli

*rotwerd*

wie muss ich

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


lpLocalName, lpRemoteName, lpnLength - deklarieren -.- *kopfrauch*
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
510 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: NetworkDrive Disconnect *speziel*

  Alt 25. Apr 2008, 14:38
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:09 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