AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Zugriff auf Netzwerkpfad per User-Anmeldung

Zugriff auf Netzwerkpfad per User-Anmeldung

Ein Thema von Harry Stahl · begonnen am 20. Sep 2022 · letzter Beitrag vom 21. Sep 2022
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.324 Beiträge
 
Delphi 11 Alexandria
 
#1

Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 20. Sep 2022, 20:47
Wenn ich im Programmablauf im Netzwerk auf z.B. "\\EW4\D" zugreifen will (also das Laufwerk D, dass dort freigegeben ist), passiert nichts, wenn man noch nicht die Anmeldeinformationen eingegeben hat.

(siehe anliegenden Screenshot)

Wenn ich den Pfad im Windows-Explorer eingebe, popt das gezeigte Fenster automatisch auf.

Wie kann ich das selber programmgesteuert erreichen und wie merke ich, wann das notwendig ist (im Vergleich etwa zu einem ungültigen eingegebenen Pfad)?
Miniaturansicht angehängter Grafiken
net.png  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.738 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 20. Sep 2022, 22:06
Das könnte mit WNetUseConnection und dem Flag CONNECT_INTERACTIVE funktionieren. Das sollte fragen, wenn die Default-Werte keinen Zugriff erlauben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.324 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 21. Sep 2022, 20:33
Danke Uwe, das waren die richtigen Stichworte.

Hab es jetzt so gelöst:

Delphi-Quellcode:
function ConnectWithNetPath (netpath: string): boolean;
var
  BufferSize, ResultFlag: DWORD; NetResource: TNetResource;
begin
  Result := True;

  if not directoryexists (netpath) then begin
    NetResource.dwType := RESOURCETYPE_DISK;
    NetResource.lpLocalName := nil;
    NetResource.lpRemoteName := PChar (netpath);
    NetResource.lpProvider := nil;

    Result := WNetUseConnection(Application.MainForm.handle, NetResource, nil, nil, CONNECT_INTERACTIVE or
      CONNECT_PROMPT, nil, BufferSize, ResultFlag) = NO_ERROR;
  end;

end;

procedure TForm23.bnConncetClick(Sender: TObject);
begin
  if ConnectWithNetPath (edNetpath.Text) then begin
    // do whatever needed
  end;
end;
Zwar muss ich einige Sekunden warten, bis "DirectoryExists" aufgibt, aber das ist Ok.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.738 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 21. Sep 2022, 21:35
Wenn du das CONNECT_PROMPT weglässt, dann kommt die Abfrage nur wenn notwendig. Dann solltest du dir das DirectoryExists sparen können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.084 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 21. Sep 2022, 21:50
Warum überaupt erst das DirExists? [edit] (und warum war Uwe grade eben noch nicht zu sehn?) [/edit]

Mach einfach direkt ein WNetUseConnection und wenn da ERROR_ALREADY_ASSIGNED zurück kommt, dann existierte es bereits
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.324 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zugriff auf Netzwerkpfad per User-Anmeldung

  Alt 21. Sep 2022, 23:25
OK, danke für die Hinweis, dann werde ich das noch etwas optimieren...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf