Einzelnen Beitrag anzeigen

gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#1

External execption EEFFACE bei ShellExecuteEx

  Alt 24. Sep 2008, 10:12
Hallo!

Ich habe hier ein merkwürdiges und ziemlich nerviges Problem mit dem Befehl ShellExecuteEx. Die Implementierung sieht folgendermaßen aus:

Delphi-Quellcode:
  function ShellExecEx(const FileName: string; const Parameters: string; const Directory: String; const Verb: string; CmdShow: Integer): Boolean;
  var
    Info: pShellExecuteInfo;
  begin
    // Clear Info
    New(Info);
    ZeroMemory(Info, SizeOf(TShellExecuteInfo));

    // Fill in the SHELLEXECUTEINFO structure
    try
      Info.cbSize := SizeOf(tShellExecuteInfo);
      Info.fMask := SEE_MASK_FLAG_NO_UI or SEE_MASK_DOENVSUBST;
      Info.wnd := HWnd_Desktop;
      Info.lpVerb := pChar(Pointer(Verb));
      Info.lpFile := pChar(FileName);
      Info.lpParameters := pChar(Pointer(Parameters));
      Info.lpDirectory := pChar(Pointer(Directory));
      Info.nShow := CmdShow;;
      Info.hInstApp := 0;
      Info.lpIDList := nil;

      {$T+}
      Result := ShellExecuteEx(Info);
      {$T-}
      if Result = False then ShowMessage(SysErrorMessage(GetLastError));
    finally
      Dispose(Info);
    end;
  end;
Wenn ich nun eine Datei mit ShellExecuteEx starte (verb 'Open', cmdShow 'SW_SHOWNORMAL'), dann fährt mir sehr häufig die komplette IDE mit einer External Exception EEFFACE an die Wand. Ich kann dann nur noch bds.exe per Taskmanager beenden und neu starten (was das debuggen natürlich knifflig macht).
Ich hab die Routine in zwei Programmen im Einsatz und bei beiden hab ich das Problem - ich vermute also, dass es nicht am restlichen Programm liegt. Ebenso hab ich keine zusammenhänge bei den zu startenden Dateien erkennen können. Einmal klappt der Aufruf und ein andermal bekomme ich die Exception bei der selben Datei.
Die Exception wird direkt beim ShellExecuteEx-Aufruf ausgelöst.

Die Systemumgebung sieht folgendermaßen aus:
Delphi 2007 Pro mit allen aktuellen Fixpacks
Windows Vista Business

Also ich bin ziemlich ratlos (und nachdem ich die IDE die letzten Tage zahllos abgeschossen und wieder neu gestartet hab auch ziemlich frustiert). Hat jemand eine Idee, worin der Fehler liegen kann?

Gruß
Gerald
  Mit Zitat antworten Zitat