Shellexecute返回值错误消息

时间:2013-02-23 15:25:52

标签: delphi shellexecute

当我调用ShellExecute时,我得到了返回值 - 一个整数。我在哪里可以获得相关的错误消息?我知道它们很通用,但我在MS文档中看到了消息。

1 个答案:

答案 0 :(得分:8)

ShellExecute的错误处理是一场灾难。 Raymond Chen在此处讨论:Why does ShellExecute return SE_ERR_ACCESSDENIED for nearly everything?因此,即使您可以将少数可能的ShellExecute错误转换为文本,您也会发现您总是得到Access denied。这并不是很有用。

最重要的是,如果您想要真正的错误报告,那么您需要使用ShellExecuteEx。如果失败,请调用GetLastError以获取Win32错误。要使用描述性文字将其变为例外,请致电RaiseLastOSError。如果您只想要与错误相关联的描述性文字,请致电SysErrorMessage