CreateProcess和ShellExec的区别

这两者之间的主要区别是什么? 我愿意从我的(c ++)应用程序只运行另一个exe。 inheritance环境,安全特性等有什么区别吗? 谢谢。

CreateProcessShellExecute之间的主要区别如下: CreateProcess更多地面向低级别,而ShellExec则是高级用户杠杆,在Explorer中查看用户。

例如使用CreateProcess可以使用长度MAX_PATH命令行。 它有32,768个字符限制。 您也可以使用CreateProcess在另一个Windows桌面上(如登录屏幕上)启动程序(如果您拥有足够的权限)。

另一个例子。 您可以使用ShellExecute启动控制面板或打开计算机上存在的用于编辑JPG字段的任何程序。 因此,您可以使用ShellExecute接近Windows资源管理器中的相应操作。

CreateProcess返回已启动进程的句柄和标识,它是PROCESS_INFORMATION结构中的主线程