Einzelnen Beitrag anzeigen

Billi Berserker
(Gast)

n/a Beiträge
 
#3

Re: ShellExecute Fehler Unterdrücken

  Alt 2. Sep 2009, 13:20
lnk Dateien auf 64bit Vista und Win7 die auf 64bit Anwendungen zeigen welche sich in den entsprechenden 64bit Verzeichnissen befinden.
Z.b. wird Chess.lnk aus dem Startmenu auf ProgramFiles(x86) resolved obwohl es sich in ProgramFiles befindet. (jeweils wenn man den link resolve selber macht oder den ganzen link an ShellExecute gibt). Also versucht ShellExecute das Programm in ProgramFiles(x86) zu starten, findet es nicht und zeigt natürlich den Fehler.

Was ich jetzt grad noch versuche ist das ganze mit ShellExecuteEx zu machen. Das hat angeblich nen entsprechenden Flag um den Fehler zu unterbinden. Funktioniert natürlich nicht...
Delphi-Quellcode:
 
var
  Sei: TShellExecuteInfo;
begin
   FillChar(Sei, SizeOf(Sei), #0);
    with Sei do
    begin
      cbSize := SizeOf(Sei);
      fMask := SEE_MASK_FLAG_NO_UI;
      lpFile := PChar(AFileName);
      lpParameters := PCharOrNil(AParams);
      lpVerb := '';
      lpDirectory := PCharOrNil(ADefaultDir);
      nShow := SW_SHOWNORMAL;
    end;
    ShellExecuteEx(@Sei);
end;
Die Fehlermeldung kommt natürlich trotzdem. Falls da vielleicht jemand ne Idee hat...
  Mit Zitat antworten Zitat