我正在Windows中编写一个以管理员身份运行的c++应用程序。然而,在调用system()
命令时,似乎该命令没有管理员权限(无法在C:\Program Files (x86)\
目录中创建文件)。
我如何避免使用CreateProcess?
我正在Windows中编写一个以管理员身份运行的c++应用程序。然而,在调用system()
命令时,似乎该命令没有管理员权限(无法在C:\Program Files (x86)\
目录中创建文件)。
我如何避免使用CreateProcess?
system
,您可以使用以下内容:system("runas /user:<admin-user> \"program.exe\"");
或者使用ShellExecute
:
ShellExecute(hwnd, "runas", "program.exe", 0, 0, SW_SHOWNORMAL);
这个Stackoverflow问题
很好地详细介绍了CreateProcess
方法。
system()
吗?如果只是创建文件,你可以完全使用文件 IO。你实际上是用这个命令做什么的? - Serdalissystem
函数的实现方式是如何实现这一点的? - David HeffernanCreateProcess
实际上不允许您请求提升权限。您可以使用runas
动词来调用ShellExecute
,或者使用清单文件来实现。但不能通过CreateProcess
实现。 - David Heffernan