So könntest Du es abändern um Windows-Fehlermeldungen zu schlucken.
Nur hier im Editor geändert, ungetestet, aber das Prinzip sollte einem dadurch klar werden.
Delphi-Quellcode:
function ShellExecuteFromExplorer(lpVerb, lpFile, lpParameters, lpDirectory : PChar;
nShow : Integer) : HRESULT;
var
FolderView: IShellFolderViewDual;
DispShell: IDispatch;
ShellDispatch: IShellDispatch2;
begin
Result := E_NOTIMPL;
GetDesktopAutomationObject(IShellFolderViewDual, FolderView);
if Succeeded(FolderView.get_Application(DispShell)) then
if Succeeded(DispShell.QueryInterface(IShellDispatch2, ShellDispatch)) then
Result := ShellDispatch.ShellExecute(lpFile, String(lpParameters), String(lpDirectory), String(lpVerb), nShow);
end;