Einzelnen Beitrag anzeigen

CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

WNetAddConnection2 & Vista

  Alt 29. Okt 2007, 12:16
Zum Verbinden von Netzlaufwerken verwende ich folgenden Code:

Delphi-Quellcode:
function ConNetDrive(Laufwerk: String; Pfad: String;
  Username: String; Password: String; RestoreAtLogon: Boolean): DWORD;
var
  NetResource: TNetResource;
  dwFlags: DWORD;
  chPassword, chUsername : PChar;
begin
  ZeroMemory(@NetResource, sizeof(TNetResource));
  with NetResource do
  begin
    dwType := RESOURCETYPE_DISK;
    lpLocalName := PChar(Laufwerk);
    lpRemoteName := PChar(Pfad);
    lpProvider := nil;
  end;

  if (RestoreAtLogon) then
    dwFlags := CONNECT_UPDATE_PROFILE
  else
    dwFlags := 0;

  if Username <> 'then
    chUsername := PChar(Username)
  else
    chUsername := nil;

  if Password <> 'then
    chPassword := PChar(Password)
  else
    chPassword := nil;

  Result := WNetAddConnection2(NetResource, chPassword, chUsername, dwFlags);

end;
Was unter XP & 2000 wunderbar funktioniert, macht in Vista Probleme (Programm wird als Administrator ausgeführt).
Die Funktion wird zwar irgendwie abgearbeitet (bei falschen Eingaben gibt es entsprechende Rückmeldungen, bei korrekten Eingaben kommt 0 zurück und die Einträge sind per WNetGetConnection auch kontrollierbar), jedoch werden die Netzlaufwerke nicht im Arbeitsplatz angezeigt und können auch nicht direkt in der Adresszeile aufgerufen werden.

Welche Änderung könnte es hier gegeben haben, dass Vista hier noch explizit zum Aktualisieren gebracht werden könnte bzw. wie könnte das gehen?
  Mit Zitat antworten Zitat