WinExec 和 ShellExecute 之间有哪些区别?
Which are the differences between WinExec and ShellExecute?
我需要执行另一个应用程序,我想知道我是否应该使用 WinExec
而不是 ShellExecute
,反之亦然。
两种方法有哪些区别?有没有应该首选的?
WinExec
早已弃用,仅出于向后兼容的原因而保留。它用于启动可执行文件。不要使用它,因为它已被弃用。如文档中所述:
This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
ShellExecute
未弃用,但也不应使用,因为它无法正确报告错误。
使用ShellExecuteEx
执行shell个动词。
如果您想创建一个进程,并且您知道可执行文件名,请使用 CreateProcess
。除非你需要执行提升,在这种情况下你需要 ShellExecuteEx
和 runas
动词。
我需要执行另一个应用程序,我想知道我是否应该使用 WinExec
而不是 ShellExecute
,反之亦然。
两种方法有哪些区别?有没有应该首选的?
WinExec
早已弃用,仅出于向后兼容的原因而保留。它用于启动可执行文件。不要使用它,因为它已被弃用。如文档中所述:
This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
ShellExecute
未弃用,但也不应使用,因为它无法正确报告错误。
使用ShellExecuteEx
执行shell个动词。
如果您想创建一个进程,并且您知道可执行文件名,请使用 CreateProcess
。除非你需要执行提升,在这种情况下你需要 ShellExecuteEx
和 runas
动词。