Die erste Version der Funktion sah folgendermaßen aus:
Delphi-Quellcode:
function ShellFileOpen(const aFile, aParameters, aDirectory: string): Boolean;
var
Info: TShellExecuteInfo;
begin
// Clear Info
FillChar( Info, SizeOf( TShellExecuteInfo ), #0 );
with Info do
begin
cbSize := SizeOf(Info);
fMask := SEE_MASK_FLAG_NO_UI or SEE_MASK_NOCLOSEPROCESS;
wnd := HWnd_Desktop;
lpVerb := 'open'; // RunAs startet den "Ausführen als .."-Dialog
lpFile := pChar(aFile);
if aParameters <> ''
then lpParameters := pChar(aParameters)
else lpParameters := NIL;
if aDirectory <> ''
then lpDirectory := pChar(aDirectory)
else lpDirectory := Nil;
nShow := SW_SHOWNORMAL;;
hInstApp := 0;
lpIDList := nil;
end;
Result := ShellExecuteEx(@Info);
End;
Aber selbst hier gibts die selbe
Exception beim ShellExecuteEx
Ich hab gestern die Funktionen an einer zweiten Maschine unter WinXP getestet und dort scheinen sie offensichtlich zu funktionieren. In der
MSDN hab ich aber keine gravierenden Neuerungen von XP zu Vista bei ShellExecuteEx gefunden
Gruß
Gerald