Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.767 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Ausgabe von Fehlermeldungen in einer Consolenanwendung

  Alt 30. Jan 2006, 18:53
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;
Klaus
  Mit Zitat antworten Zitat