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