C ++ winapi提升

我正在开发Windows资源pipe理器命名空间扩展。 我的应用程序是一个dynamic库,由explorer.exe在某些时候加载和使用。 我需要我的DLL在C:\中创build文件,有时在需要提升的其他位置执行这样的操作。

我怎样才能在C:\下执行这​​样的提升和创build文件?

如果你的代码在另一个进程中运行,那么这个进程的高程状态就是摆布的。 如果该进程不运行提升,而资源管理器没有,那么你的DLL中的代码不能执行提升。

因此,您的解决方案是创建另一个流程来执行需要提升的任务。 这样做使用这些方法之一:

  • 在应用程序清单中为requestedExecutionLevel指定requireAdministrator选项。
  • runas动词使用ShellExecuteEx开始这个过程。
  • 将代码提升到一个COM对象中,并使用COM高程名字对象。