问题标签 [createprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
926 浏览

jobs - IsProcessInJob 与 GetCurrentProcess 远离 true

(Visual Studio 2010 - C++)你好,

我正在尝试将 JOB 设置为进程,但 AssignProcessToJobObject 返回 ACCESS_DENIED 并且 IsProcessInJob 返回 TRUE。

我在调用 CreateProcess (Suspended) 结束后立即将 IsProcessInJob 调用到一个进程,尝试用我的进程调用 IsProcessInJob(在主入口点之后几行),它返回 true。

以前有人看过吗?

谢谢你的帮助。资料来源: 杀死父进程时杀死子进程 如何在Windows中自动销毁子进程?

0 投票
1 回答
549 浏览

winapi - 使用 CreateProcess 在隐藏窗口中播放媒体

我刚刚在textmode c ++中开发了一个小游戏,我真正想做的是当游戏开始时它应该在隐藏模式下生成一个媒体播放器并播放mp3文件,我也想在程序关闭时关闭媒体播放器或者当我想要它时,我在互联网上搜索并发现 CreateProcess()(包含在 shellapi.h 中)可以完成这项工作,但我已经看到使用 ShellExecute() 生成应用程序要容易得多,但它不会让我在我想要的时候关闭它,所以我想要一个 CreateProcess 函数的工作示例代码来完成这项工作,假设媒体播放器是“C:\wmplayer.exe”,而 mp3 文件是“C: \1.mp3"...我打开mp3播放器有点成功,但无法播放mp3。我希望我能在这里得到帮助。问候

0 投票
1 回答
7523 浏览

windows - PSExec 如何以 SYSTEM 用户身份运行应用程序?

我想知道 sysinternals 的 psexec.exe 如何以 SYSTEM 用户身份执行进程。我需要在 SYSTEM 进程下运行一个工具,但如果不将其注册为服务,我真的不知道该怎么做。

有人有想法吗?

ps 我真的更喜欢使用 WINAPI (C++)。谢谢!:-)

谢谢!

0 投票
1 回答
2614 浏览

windows - CreateProcess 返回非 0 但 GetExitCodeProcess() 返回 128

我正在创建一个应用程序,它将使用 CreateProcess() 启动另一个进程。在父进程中,我将使用 GetExitCodeProcess() 检查进程是否处于活动状态。

这里 CreateProcess() 成功(返回一个非负值)但 GetExitCodeProcess() 返回 128(没有子进程等待)。我没有看到任何启动子进程的痕迹(通常是一些调试)。它间歇性地发生。

知道子进程到底发生了什么吗?我们从哪里获得更多信息(在系统/应用程序事件日志中?)。

请指导我。

谢谢,纳迦

0 投票
1 回答
1020 浏览

c++ - CreateProcess 适用于某些计算机,而不适用于其他计算机。为什么?

我在一个通过 CreateProcess 调用另一个应用程序的应用程序上工作。我在Win7 64位。被调用的应用程序是一个通过管道接收数据的控制台。调用代码如下所示:

在我的电脑上(我试过两台),它可以工作。在其他情况下,它返回 (bRet=)FALSE 然后 GetLastError() 返回 5,这意味着 ACCESS_DENIED。

我无法弄清楚问题出在哪里。不好的是它对我有用,所以我无法调试它!

我的设置是:

  • Win7 Pro 64 位 SP1

  • VStudio 2005 SP1

  • (使用的编译器:Intel C++ 9.1

如果您需要,我很乐意提供更多设置信息!

任何的想法?

0 投票
2 回答
1128 浏览

c++ - Visual Studio 2008 中的 cl.exe 包装器

cl.exe我在 C++ 中为(Visual Studio 编译器)创建了一个包装器。为此,我更改了PATH环境变量,以便 Visual Studio 找到我的cl.exe第一个。然后,在我的中,我创建了一个使用我得到的参数cl.exe运行真实的进程。cl.execl.exe

这样做的目的是过滤真实的输出cl.exe以删除我们无能为力的警告。我们想要“检测 64 位概率问题”,因为它很棒,但它会发出警告。

警告:

cl:命令行警告 D9035:选项“Wp64”已被弃用,将在未来版本中删除

我已经搜索了几天有关如何删除此特定警告的信息,这不是您可以使用代码或正常警告之类的选项关闭的警告。

问题:Visual Studios 运行 my cl.exe,然后 mycl.exe运行 real cl.exe,但从那时起 mycl.exe不再接收输出。我已经通过让它调用真实之外的东西来测试它,cl.exe并且我cl.exe可以完全控制输出......

任何一个文件的任何输出cl.exe都显示在 Visual Studio 的输出框中,但我cl.exe不再接收来自真实cl.exe...

我正在使用管道来处理我的输出cl.exe,它适用于除真实之外的任何东西cl.exe

为什么我不cl.exe管理输出?Visual Studio 是否会忘记我cl.exe并以某种方式将自己附加到真实的?

cl.exe另外,除了创建一个包装器来消除这个警告之外,还有其他解决方案吗?

0 投票
1 回答
1835 浏览

windows - 异步创建过程?

我注意到在我的应用程序中,CreateProcessWithTokenW 有时会在返回之前阻塞很长时间(最多 20 秒)。长时间阻塞我的主线程是不可接受的,因此我正在考虑将调用移至后台线程。但是,我想知道是否有更好的内置方法来执行异步 CreateProcess,可能使用重叠操作等。有谁知道这样的事情是否存在?

0 投票
1 回答
1882 浏览

c++ - CreateProcessW 中的错误:无法将参数 9 从“STARTUPINFO”转换为“LPSTARTUPINFO &”

我知道这startup_info是一个指向STARTUPINFO结构的指针

我有一个函数,我通过引用将 startup_info 传递给它。所以我们可以说我通过引用传递了一个指针

让我们假设我在这个函数 caller() 中调用了函数 cp

它会给我错误消息: CreateProcessW 中的错误:无法将参数 9 从 'STARTUPINFO' 转换为 'LPSTARTUPINFO &'

但是由于 statup_info 是一个指针,我应该能够将它传递给函数 cp 对吧?

编辑:感谢您的建议,但以下内容对我有用: LPSTARTUPINFO是指向STARTUPINFO结构的指针

所以我改为

0 投票
2 回答
1824 浏览

c++ - 使用 DEBUG 标志打开进程的问题

我正在尝试使用CreateProcess带有DEBUG_PROCESSandDEBUG_ONLY_THIS_PROCESS标志的调试器打开一个进程,并且该进程已打开,但是当我尝试SymInitialize使用收到的句柄调用时,它失败了。

这是我的代码:

如果我在没有创建标志的情况下调用 CreateProcess,则 symInitialize 成功。
我究竟做错了什么?

0 投票
3 回答
4002 浏览

winapi - 为什么 Unix 有 fork() 而没有 CreateProcess()?

我不明白为什么 Unix 必须fork()创建一个新进程。在 Win32 API 中,我们CreateProcess()创建了一个新进程并将可执行文件加载到其地址空间中,然后从入口点开始执行。但是 Unix 提供了用于创建新进程的 fork,我不明白如果我想运行另一个进程,为什么要复制我的进程。

所以让我问这两个问题:

  1. 如果fork()and thenexec()更有效,为什么没有函数,因为我们几乎在每种情况下forkexec(const char *newProc)都会调用exec()after ?fork()
  2. 如果它不是更有效,那为什么还fork()存在呢?