Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Netzlauferk verbinden unter Windows 7 (https://www.delphipraxis.net/159778-netzlauferk-verbinden-unter-windows-7-a.html)

simmi 12. Apr 2011 14:54

Netzlauferk verbinden unter Windows 7
 
Hallo zusammen,

ich benutze die allgemein bekannte Funktion zum Verbinden eines Netzlaufwerkes und rufe diese, wie unten dargestellt, auf. Bisher (unter XP)funktioniert es ohne Probleme. Auf einigen Laptop's die mit Windows 7 Enterprise ausgestattet sind wird jedoch kein Netzlaufwerk verbunden. (WLAN ist an und auch vorhanden) Nehme ich die Daten und mache es manuell(auf so einem Laptop unter dem entsprechenden Benutzerkonto) dann ist alles ok. Die Nutzer haben das Recht Laufwerke zu verbinden und auch das Recht auf diese Ressouce zuzugreifen. Der von mir gewünschte Laufwerksbuchstabe ist auch nicht belegt.

Hat jemand eine Idee wo der Fehler liegen könnte??

Delphi-Quellcode:
function ConnectNetworkDrive(const ADrive: string; const ADirectory, AUsername, APassword: string;
                             const ARestoreAtLogon: Boolean ): Boolean;
var
  NetResource: TNetResource;
  dwFlags:    DWORD;
  lPwd, lUser: PChar;
begin
  NetResource.dwType:=RESOURCETYPE_DISK;
  NetResource.lpLocalName:=PChar(ADrive);
  NetResource.lpRemoteName:=PChar(ADirectory);
  NetResource.lpProvider:=nil;

  if ARestoreAtLogon then dwFlags:=CONNECT_UPDATE_PROFILE
                     else dwFlags:=0;
  if AUsername<>'' then lUser:=PChar(AUsername)
                   else lUser:=nil;
  if APassword<>'' then lPwd:=PChar(APassword)
                   else lPwd:=nil;

  Result:=WNetAddConnection2(NetResource, lPwd, lUser, dwFlags)=NO_ERROR;
end;
Delphi-Quellcode:
if not ConnectNetworkDrive('T:', '\\server-ad\ad','Nutzer','Passwort',false) then
 begin
  showmessage('Verbindungsfehler zum Netzwerk. Bitte wiederholen.');
  exit;
 end;

ChrisE 12. Apr 2011 15:12

AW: Netzlauferk verbinden unter Windows 7
 
Hallo,

ich schlage dir folgende Anpassung zur genaueren Analyse vor:
Delphi-Quellcode:
function ConnectNetworkDrive(const ADrive: string; const ADirectory, AUsername, APassword: string;
                             const ARestoreAtLogon: Boolean; var ErrCode: Cardinal): Boolean;
begin
// alles gleich wie bei Dir
ErrCode := WNetAddConnection2(NetResource, lPwd, lUser, dwFlags);
result := ErrCode = NO_ERROR;
end;

// ----

if not ConnectNetworkDrive('T:', '\\server-ad\ad','Nutzer','Passwort',false, err) then
begin
  showmessage('Verbindungsfehler zum Netzwerk. Bitte wiederholen. Fehlercode: ' + IntToStr(err) + ' Fehlermeldung: ' + SysErrorMessage(err));
  exit;
end;
Bei mir funktioniert es übrigens. Allerdings lasse ich Benutzername und Passwort leer, da bereits andere Verbindungen zum Server existieren. (Win7 Ultimate 32Bit / Delphi 2007)

Gruß, Chris

simmi 14. Apr 2011 10:16

AW: Netzlauferk verbinden unter Windows 7
 
Bin leider nicht immer und täglich im Portal, deshalb etwas später. Danke für Deinen Vorschlag. Habe ihn eingebaut und kann jetzt nur hoffen.
Benutzername und Passwort müssen mitgegeben werden, da nie sicher ist ob bereits eine Verbindung zu diesem Server aufgebaut wurde.

Allerdings wurde mir auch später mitgeteilt, dass die WLAN Verbindung sehr schlecht war. Warum hätte ich auch dieses unwichtige Detail wissen sollen...

ChrisE 14. Apr 2011 10:27

AW: Netzlauferk verbinden unter Windows 7
 
Hallo,

ich bin mir sicher, dass du die Fallstricke kennst, ich schreibe es aber trotzdem nochmal :mrgreen:
  • Zum Server kann nur eine Verbindung (Benutzername / Passwort) hergestellt werden. Sollte also bereits eine existieren mit einer anderen Kombination, kann dass auch der Grund dafür sein, dass sich das Netzlaufwerk nicht verbinden läßt
  • Der Laufwerksbuchstabe sollte natürlich frei sein ;-)

Gruß und viel Erfolg weiter hin.

Chris

simmi 14. Apr 2011 11:40

AW: Netzlauferk verbinden unter Windows 7
 
Das mit dem freien Laufwerksbuchstaben, ja und kein Kommentar.

Zitat:

Zum Server kann nur eine Verbindung (Benutzername / Passwort) hergestellt werden. Sollte also bereits eine existieren mit einer anderen Kombination, kann dass auch der Grund dafür sein, dass sich das Netzlaufwerk nicht verbinden läßt
Hilf mir mal auf die Sprünge.

Sie haben die Möglichkeit ein anderes Netzlaufwerk auf dem gleichen Server über den Arbeitsplatz zu verbinden. Das Netlaufwerk wird im Arbeitsplatz angezeigt, sie machen Doppelklick und geben Nutzer und Passwort ein. (Gleicher Benutzername und gleiches Passwort).

Verstehe ich Dich richtig, dass wenn Sie dieses Laufwerk verbunden haben, eine Verbindung aus meinem Programm heraus fehl schlägt?? (Gleicher Server, anderes Laufwerk, gleiche Zugangsdaten)

ChrisE 14. Apr 2011 19:42

AW: Netzlauferk verbinden unter Windows 7
 
Zitat:

Zitat von simmi (Beitrag 1095065)
Verstehe ich Dich richtig, dass wenn Sie dieses Laufwerk verbunden haben, eine Verbindung aus meinem Programm heraus fehl schlägt?? (Gleicher Server, anderes Laufwerk, gleiche Zugangsdaten)

Nein, das Funktioniert.
Du kannst "beliebig" viele Laufwerke verbinden solange Du Dich gegenüber einem Server immer mit den selben Zugangsdaten authentifizierst. Aber wenn z.B.
Laufwerk X:\ als \\ServerA\Freigabe1 mit Benutzer1 : Passwort1 gesetzt ist
und Du versuchst dann
Laufwerk Y:\ als \\ServerA\Freigabe2 mit Benutzer2 : Passwort2 an zu legen wird es fehl schlagen.

Gruß, Chris

DP-Maintenance 14. Apr 2011 21:27

Dieses Thema wurde am "14. Apr 2011, 22:27 Uhr" von "fkerber" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Netzwerke" verschoben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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