我很好,它要求用户boost准备复制文件时。 需要进行复制的程序不能运行(它会丢失许多重要的环境variables,我无法改变它的启动方式)。 我的后备将会产生一个实际上做文件拷贝的高程的过程,但是我不想为另一个exe文件添加另一个exe文件。
如何使用ANSI C检查文件是否可执行?
由SIGSEGV回溯
未知的HZ值
加载boost的共享库时出错
C急EXE应打开时要求“以pipe理员身份运行”提示
使用COM Elevation Moniker实例化IFileOperation shell接口,然后所有使用该接口完成的文件操作都将被提升,而不必提升调用进程,或者不必创建单独的EXE /进程来处理文件访问。
您需要使用runas动词ShellExecute您的程序的副本。 这将导致副本升高。 这个升级的过程可以做到这一点。
通常情况下,您将自己的副本传递给一个命令行选项,指出您想要执行受保护的事情:
ShellExecute(0,“runas”“Frobber.exe”,“ – doThatThingThatRequiresElevation”,“”);
公认的看法是,这是不可能的,因为你不能在程序运行的时候提升它。 另请参阅: 启动后进程是否可以升级?