C++ 在另一进程上下文下运行命令

C++ 在另一进程上下文下运行命令,c++,windows,winapi,C++,Windows,Winapi,我想在我的进程中创建一个新文件,但不是在我的进程上下文中,而是在另一个进程的上下文中(例如explorer.exe/cmd.exe)。我可以将CreateProcess与“cmd.exe/c create_file_command”一起使用,但它太“沉重”,我无法仅为此类任务创建新进程。有没有办法让当前用户会话中的explorer.exe为我运行命令?当然。如果您有足够的权限,可以使用。若你们并没有使用这个功能,那个么它的工作原理几乎是一样的。大概不太重要的是什么进程来完成这项工作,而主要的问题

我想在我的进程中创建一个新文件,但不是在我的进程上下文中,而是在另一个进程的上下文中(例如explorer.exe/cmd.exe)。我可以将CreateProcess与“cmd.exe/c create_file_command”一起使用,但它太“沉重”,我无法仅为此类任务创建新进程。有没有办法让当前用户会话中的explorer.exe为我运行命令?

当然。如果您有足够的权限,可以使用。若你们并没有使用这个功能,那个么它的工作原理几乎是一样的。

大概不太重要的是什么进程来完成这项工作,而主要的问题是它是在什么用户帐户下完成的


如果是这样的话,您可能想让您的流程模拟正确的用户,然后创建文件。

请发布您的尝试。您为什么关心哪个流程创建了文件?提供上下文可能会帮助我们更好地帮助您。@用户,请稍候。是否要
在进程中创建新文件,而不是在进程上下文下创建新文件
,或在当前用户会话中请求explorer.exe为您运行命令?这些是相互排斥的。(Downvote不是我的,这条评论是善意发布的。)你可能会在另一个应用程序中插入一个dll,让你可以这样做;这几乎是让任意进程执行任意任务的唯一方法为什么您通常不喜欢使用
CreateProcessWithLogon
?@CodyGray这很有趣,但MSDN这么说。好的,CreateProcessWithLogon(因为它是ASCII版本CreateProcessWithLogonA)甚至没有文档记录。是的,MSDN说更喜欢CreateProcessWithLogon。“你为什么不推荐呢?”科迪格雷对不起,我想说另一件事。检查文档。他们在那里写的是使用CreateProcessWithLogonW,以防CreateProcessAsUser失败。这就是OP所说的太“重”了。例如,他希望当前用户的
explorer.exe
执行文件创建。这不是一个新的过程(就我所理解的问题而言)。