Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Systemfehlermeldung bei ShellExecuteEx (https://www.delphipraxis.net/173131-systemfehlermeldung-bei-shellexecuteex.html)

DeddyH 8. Feb 2013 12:47


Systemfehlermeldung bei ShellExecuteEx
 
Ich schreibe gerade eine kleine Routine, die ShellExecuteEx verwendet. Wird eine nicht existente Datei angegeben, bringt das System eine Fehlermeldung hoch. OK, kein Problem, SetErrorMode sollte das unterdrücken... dachte ich. Bin ich zu blöd dazu?
Delphi-Quellcode:
var
  Info: TShellExecuteInfo;
  ErrMode: Cardinal;
begin
  Result := 0;
  ZeroMemory(@Info, SizeOf(Info));
  Info.cbSize := SizeOf(Info);
  ...
  ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS or SEM_NOOPENFILEERRORBOX);
  if not ShellExecuteEx(@Info) then
    Result := GetLastError;
  SetErrorMode(ErrMode);
end;
Zitat:

SEM_NOOPENFILEERRORBOX
0x8000

The system does not display a message box when it fails to find a file. Instead, the error is returned to the calling process.
Entweder verstehe ich es nicht, oder die Behauptung ist falsch :gruebel:

[edit] Ich sehe gerade, das Problem ist nicht neu, und an dem Thread war ich sogar selbst beteiligt... peinlich, peinlich :oops: [/edit]

Bummi 8. Feb 2013 13:26

AW: Systemfehlermeldung bei ShellExecuteEx
 
Wurde hier schon einmal behandelt http://www.delphipraxis.net/139656-s...rdruecken.html

Als Lösungsvorschlag hätte ich

Delphi-Quellcode:
  Info.fMask := SEE_MASK_FLAG_NO_UI;
anzubieten.

DeddyH 8. Feb 2013 13:29

AW: Systemfehlermeldung bei ShellExecuteEx
 
Lesen müsste man können :oops:, Danke Dir, das war die Lösung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz