Einzelnen Beitrag anzeigen

Klaus01

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

AW: ShellExecuteEx -> Access denied

  Alt 20. Mär 2014, 10:52
Hallo,

danke für den Hinweis, werde das Record noch nullen.
Fehler ist/war aber ein anderer.

shellExeInfo.cbSize := sizeOf(TShellExecuteInfo); TShellExecuteInfo war mein Versuch die shellexecuteInfo nachzubilden.
In meinem Record ist dann wohl noch ein Fehler enthalten.

Delphi-Quellcode:
  TDummyUnionName = record
    hIcon: THandle;
    hMonitor: THandle;
  end;

  TShellExecuteInfo = record
    cbSize: cardinal; //dword
    fMask: cardinal; //ulong
    hwnd: THandle;
    lpVerb: pChar;
    lpFile: pChar;
    lpParameters: pChar;
    lpDirectory: pChar;
    nShow: Integer;
    hInstApp: THandle;
    lpIDList: pointer;
    lpClass: pChar;
    hkeyClass: byte;
    dwHotKey: cardinal; //dword
    dummyUnionName: TDummyUnionName;
    hProcess: THandle;
  end;
shellExeInfo.cbSize := sizeOf(ExecuteInfo); So funktioniert es...


Edit:
Wenn man aus dem Record TDummyUnionName ein Union macht,
Delphi-Quellcode:
  TDummyUnionName = record
    case boolean of
      true: (hIcon: THandle);
      false: (hMonitor: THandle);
  end;
dann klappt es auch mit der selbst gebastelten TShellExecuteInfo.

Danke.

Grüße
Klaus
Klaus

Geändert von Klaus01 (20. Mär 2014 um 19:03 Uhr)
  Mit Zitat antworten Zitat