从C+;启动提升的子进程+;编码并通过标准输入/标准输出与之通信 我需要启动一个具有C++代码的特权的子进程。我对Windows API一点也不熟悉,通过粗略的谷歌搜索,我发现 a) 要启动提升的进程,我需要将ShellExecute与runas动词一起使用。 b) 要通过stdin/stdout与子流程通信,我必须使用CreateProcess
但是我还没有找到一种同时做到这两个的方法 另外,我需要从C+;启动提升的子进程+;编码并通过标准输入/标准输出与之通信 我需要启动一个具有C++代码的特权的子进程。我对Windows API一点也不熟悉,通过粗略的谷歌搜索,我发现 a) 要启动提升的进程,我需要将ShellExecute与runas动词一起使用。 b) 要通过stdin/stdout与子流程通信,我必须使用CreateProcess,c++,windows,winapi,C++,Windows,Winapi,但是我还没有找到一种同时做到这两个的方法 另外,我需要 要么在进程完成时获取回调,要么轮询它以查看它是否仍在运行 检查其返回代码 正如我所说,我对Windows API完全不熟悉,那么,有人能给我指出正确的函数吗?您需要设置请参阅SHELLEXECUTEINFO.fMask中的\u MASK\u NOCLOSEPROCESS,并使用SHELLEXECUTEINFO.hProcess和一些等待函数,最后调用getexitdeprocess和CloseHandle-关于stdin/stdout-
- 要么在进程完成时获取回调,要么轮询它以查看它是否仍在运行
- 检查其返回代码
正如我所说,我对Windows API完全不熟悉,那么,有人能给我指出正确的函数吗?您需要设置
请参阅SHELLEXECUTEINFO.fMask
中的\u MASK\u NOCLOSEPROCESS
,并使用SHELLEXECUTEINFO.hProcess
和一些等待函数,最后调用getexitdeprocess
和CloseHandle
-关于stdin/stdout-这在设计上是不可能的从“草草的谷歌搜索”到实际研究文档的时间增加了。本网站不能取代该法案。从这里开始:副本:我建议仔细阅读哪些可以使用非常类似于stdin/stdout的。请参阅,它支持在重定向std时启动提升的进程(in | out | err)使用命名管道。您需要设置请参见SHELLEXECUTEINFO.fMask
中的\u MASK\u NOCLOSEPROCESS
,并使用SHELLEXECUTEINFO.hpProcess
和一些等待函数,最后调用GetExitCodeProcess
和CloseHandle
-关于stdin/stdout-这是不可能的,因为设计的过程需要较长的处理时间才能毕业从“粗略的谷歌搜索”到实际研究文档。本网站不能取代该法案。从这里开始:副本:我建议仔细阅读哪些可以使用非常类似于stdin/stdout的。请参阅,它支持在使用命名管道重定向std(in | out | err)时启动提升的进程。