ShellExecute和CreateProcess用户权限
时间: 2023-06-05 17:05:34 浏览: 253
抱歉,我可以回答这个问题。ShellExecute 和 CreateProcess 都是 Windows 系统提供的 API,可以用于启动一个新的程序进程。不同之处在于,ShellExecute 更加灵活,可以打开任意类型的文件,包括文本文件、图片文件、音视频文件等等;而 CreateProcess 只能启动可执行文件。另外,CreateProcess 可以比 ShellExecute 更好地控制启动的进程,例如可以指定进程的窗口样式、输入输出的管道等等。至于用户权限方面,CreateProcess 可以通过参数指定启动进程的权限,而 ShellExecute 则会默认使用调用进程的权限来启动新进程。
相关问题
c++ shellexecute和createprocess
ShellExecute和CreateProcess是Windows操作系统中的两个不同的函数,用于启动和执行其他应用程序。
ShellExecute函数可以用于打开指定类型的文件、URL、应用程序或者执行其他操作。它属于Shell32.dll动态链接库中的一个功能函数,具有简单易用的特点。ShellExecute函数将指定的文件或操作交给操作系统来处理,操作系统会根据文件类型或者操作种类的不同来决定采取什么措施,例如用关联的程序打开文件、打开指定的网址等。ShellExecute还可以更改操作系统的默认处理程序,以便自定义文件、操作的打开方式。ShellExecute函数适用于不需要对新启动的程序进行严格控制和监控的场景。
CreateProcess函数可以用于启动和执行另一个可执行文件。它属于Kernel32.dll动态链接库中的一个功能函数,具有更多的参数和选项,可以更加灵活地控制和监控新启动的程序。CreateProcess函数可以指定新进程的可执行文件路径、命令行参数、环境变量等,并且可以创建一个新的进程并使其运行。CreateProcess函数还可以指定新进程的启动方式、窗口样式和权限等参数,用于实现更加复杂的操作和需求。CreateProcess函数适用于需要对新启动的程序进行精细控制和监控的场景。
总结来说,ShellExecute函数适用于简单地启动和执行外部应用程序或者操作,而CreateProcess函数则适用于更加复杂的、需要对新进程进行精细控制和监控的情况。在实际应用中,我们可以根据具体需求选择合适的函数来启动和执行其他应用程序。
ShellExecute管理员权限拉起程序
您可以使用ShellExecuteEx函数来以管理员权限启动程序。以下是一些示例代码:
```
SHELLEXECUTEINFO sei = { sizeof(SHELLEXECUTEINFO) };
sei.lpFile = "yourfile.exe";
sei.nShow = SW_SHOW;
sei.lpVerb = "runas";
ShellExecuteEx(&sei);
```
这将以管理员权限启动名为"yourfile.exe"的程序。您可以将任何需要管理员权限的程序替换掉“yourfile.exe”。