Shellexecute返回值错误消息

Pat*_*ney 5 delphi shellexecute

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

Dav*_*nan 8

错误处理ShellExecute是一种灾难.Raymond Chen在这里讨论它:为什么ShellExecute几乎所有东西都返回SE_ERR_ACCESSDENIED?因此,即使您可以将少数可能的ShellExecute错误转换为文本,您也会发现您总是得到Access denied.这不是很有帮助.

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