我很好用它在准备好复制文件时要求用户提升。需要进行复制的程序无法升级(它会丢失许多重要的环境变量,而我无法改变它的启动方式)。我的后备将是它产生一个具有提升实际上文件副本的进程,但我不想在我正在处理的工作中添加另一个exe。
答案 0 :(得分:5)
使用COM Elevation Moniker实例化IFileOperation
shell接口,然后升级使用该接口完成的所有文件操作,而不必提升调用进程,或者必须创建单独的EXE /进程处理文件访问。
答案 1 :(得分:0)
您需要使用ShellExecute
动词runas
一份程序副本。这将导致副本升级。这个提升过程可以做到这一点。
通常,您自己传递一个命令行选项,指示您要执行受保护的操作:
ShellExecute(0," runas"" Frobber.exe"," -doThatThingThatRequiresElevation","");
答案 2 :(得分:-1)
人们普遍认为这是不可能的,因为你无法在程序运行时提升程序。另请参阅:Can a process elevate itself after startup?