Hallo,
ersteinmal danke an marabu.
Mit try und except ließ sich das Problem nicht beheben.
WNetAddConnection2 erzeugt keine
Exception.
Das Fehlermeldungsfenster und der Text in der Console kam
von RaiseLastOSError. Asche auf mein Haupt!
Um den letzen Fehlercode von WNetAddConnection2 zu bekommen
sollte man GetLastError verwenden.
Folgende der Code wie er nun ist.
Grüße
Klaus
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;
if not Result then
begin
TextColor(yellow);
WriteLn(SysErrorMessage(GetLastError));
TextColor(lightGray);
end;
end;