winapi - WinExec 和 ShellExecute 之间有哪些区别?

标签 winapi

我需要执行另一个应用程序,我想知道是否有理由使用 WinExec而不是 ShellExecute或相反亦然。

两种方法有哪些区别?有没有应该首选的?

最佳答案

WinExec长期弃用并仅出于向后兼容的原因保留。它用于启动可执行文件。不要使用它,因为它已被弃用。如文档中所述:

This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.


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

使用 ShellExecuteEx执行shell动词。

如果您想创建一个进程,并且您知道可执行文件的名称,请使用 CreateProcess .除非你需要执行提升,在这种情况下你需要 ShellExecuteExrunas动词。

关于winapi - WinExec 和 ShellExecute 之间有哪些区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30127504/

相关文章:

windows - 如何在 VC++ 中创建锁?

c++ - WinAPI C++ : Reprogramming Window Resize

c++ - 从进程中删除 PROCESS_TERMINATE 访问权限,由 CreateProcessWithLogonW 创建

windows - 应用程序如何在 Windows 任务栏上显示对象?

winapi - 使用注册表项或 api 替换任务管理器

C++ Allegro 或 SDL 如何创建窗口?

c++ - SuspendThread WOW64 在内核代码中挂起

c# - 捕获事件窗口更改事件时出现问题

Ruby:gem win32-service:创建具有管理员权限的服务

c++ - 以编程方式检查数字签名