C ++:在Windows上与高级subprocess进行通信

我有以下设置:我正在写的DLL在运行时dynamic加载,并提供一些类似API的function,以主机应用程序。 主机应用程序没有运行pipe理员权限(因此我的DLL不是)。

我的DLL需要完成的一些任务需要pipe理员权限,特别是我必须保存和复制文件到程序文件文件夹。

我目前的做法是通过ShellExecute和“runas”动词来启动外部应用程序,从而触发UAC提示。 这尤其意味着由用户触发的多个后续操作总是会导致额外的UAC提示,这可能是非常烦人的。

所以这个想法是一次启动一个单独的,升级的过程,然后在后台运行并接收相应的命令并执行它们。 这让我想起了我的问题:哪一种沟通方式甚至可能在一个未升级的过程和其较高的儿童过程之间? 由于显而易见的安全原因,访问stdin似乎被禁止,但是命名pipe道或共享内存呢? 是否适用相同的限制?

Solutions Collecting From Web of "C ++:在Windows上与高级subprocess进行通信"