WinExec和ShellExecute之间有哪些区别?

时间:2015-05-08 15:28:26

标签: winapi

我需要执行另一个应用程序,我想知道我是否应该使用WinExec代替ShellExecute,反之亦然。

两种方法有哪些区别?是否应该首选?

1 个答案:

答案 0 :(得分:11)

WinExec一直被弃用,仅出于向后兼容性原因而保留。它用于启动可执行文件。由于它的弃用,不要使用它。如文档中所述:

  

此功能仅用于与16位Windows兼容。应用程序应使用CreateProcess函数。

ShellExecute未被弃用,但也不应使用,因为它无法正确报告错误。

使用ShellExecuteEx执行shell谓词。

如果您希望创建进程,并且知道可执行文件名,请使用CreateProcess。除非您需要执行提升,否则您需要使用ShellExecuteEx动词runas