问题标签 [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 回答
18166 浏览

64-bit - 如何从 CreateProcess (C++) 启动 64 位版本的 javaw.exe

我正在用 C++ 编写一个启动器来在 Windows 上启动我的基于 java 的 GUI 应用程序。我CreateProcess用来启动“javaw.exe”。除了总是启动 32 位版本的“javaw.exe”之外,一切正常。

安装 java 时,它会将可执行文件“java.exe”和“javaw.exe”%windir%\System32放在 32 位窗口中。在 64 位 Windows 上,它会将相同的可执行文件放入%windir%\SysWow64.

有3种可能:

  1. 在 32 位 windows 上执行的 32 位启动器:%windir%\System32在搜索路径中,找到了 32 位 javaw.exe。GUI 启动。一切正常。

  2. 在 64 位 Windows 上执行的 32 位启动器:%windir%\System32位于搜索路径中。%windir%\System32被重定向到%windir%\SysWow64(因为在这种情况下我的启动器是 32 位的)。找到 32 位 javaw.exe。GUI 启动。一切正常。

  3. 在 64 位窗口上执行的 64 位启动器:%windir%\System32在搜索路径中。不会发生重定向。它不包含可执行的 javaw.exe。启动器失败。

在第三种情况下如何启动 64 位 javaw.exe?

0 投票
8 回答
38613 浏览

c++ - Linux 创建进程?

我在Linux平台上开发。

我想在我的库中创建一个新进程而不替换当前正在执行的图像。

因为我正在开发一个库,所以我没有 main 函数。

我想在调用程序应用程序关闭后继续新进程(就像CreateProcessWindows API 一样)。

在Linux中是否可能?

像这样的功能:

笔记:

  • system()阻塞当前进程,不好。我想继续目前的进程。

  • exec()family 替换当前执行的镜像,不好。

  • popen()如果当前进程关闭,则关闭新进程。

0 投票
3 回答
11574 浏览

c++ - 如何使用win32 CreateProcess函数等到孩子完成写入文件

你好我不是win32程序员,对我来说都是新的。我喜欢从我的父 win32 应用程序打开进程(好吧,我知道该怎么做)子进程然后写入文本文件并自行关闭它。我如何在父应用程序中检测到子应用程序已完成写入文本文件。然后从父应用读取文本文件。这都是在win32 c++中谢谢

0 投票
2 回答
1497 浏览

printing - 如何在 C++ 中运行外部可执行文件 (.exe)

我不是开发人员。我们希望(我和我们的团队)用 C++ 编写一个可以打印 PDF 的工具(将 PDF 发送到打印机)。我们尝试使用外部工具,例如命令行 pdfprint.exe,使用 CreateProcessW 和 cmd /c,但我们遇到了问题。对于 Windows XP,我们的工具没有问题,对于 Windows Vista,我们有问题,我们不能使用像 pdfprint.exe 这样的工具。

Windows XP 和 Vista 在另一个程序中使用 CreateProcessW 和“cmd /c”启动外部工具有什么区别?

谢谢

奥龙佐

0 投票
1 回答
127 浏览

c++ - 如何检测传递给创建进程的无效命令

我目前正在开发一个启动用户指定程序的程序。传入的是用户输入的 wstring。我的问题是如何让它抛出异常或检查“passedIn”是否有效。目前,如果用户输入“notepad.exe”,它会正确启动它,但如果他们输入像“asdf”这样的虚假内容或类似的东西,它仍然会创建进程。

我希望我的渔获能抓住它,但它没有。我能做些什么来检查它是否有效吗?

谢谢!

0 投票
2 回答
320 浏览

c++ - CreateProcess 不适用于所有应用程序

我正在编写一个用于启动其他外部可执行文件的小 GUI 应用程序。它适用于我想要的所有可执行文件,除了一个。这是我正在使用的代码:

外部应用程序是否有可能具有阻止它被另一个可执行文件执行的内置机制?

非常感谢

0 投票
0 回答
944 浏览

delphi - Delphi 中的 CreateProcess():重定向可执行命令的输出

可能重复:
如何获取 dos 输出。在带有vista的delphi2009中。

我正在使用 Createprocess() 来验证带有 openssl 的证书。我想重定向答案,这样我就不必将其写入 .txt 并从那里读取。我想直接将它重定向到一个字符串。基本代码如下:

我不想使用 >C:\certificat\outdelphi.txt。我希望将输出重定向到字符串。我该怎么做 ?

0 投票
1 回答
2429 浏览

winapi - 为什么 CreateProcess() 不起作用?

我有一个程序试图在 Windows 7 中重新启动资源管理器;它首先结束该过程,然后再次启动它。

简单的?

所以它看起来 - 它确实似乎工作。然而,我注意到一些有趣的事情:当我尝试在兼容模式下启动一个程序(比如 XP 的 Power Calculator powertoy)时,它不再工作了!什么都没有发生——进程被创建并立即退出。

如果我通过任务管理器的运行对话框运行资源管理器,程序运行良好。

这是怎么回事?!

编辑1:

  • 它是 32 位的,禁用了 WOW64 重定向这一事实没有任何区别。我做了64位,问题是一样的。
  • 我试过ShellExecute了,但也没有用。

编辑2:

相同的确切代码只为我工作了几次,然后又停止工作......嗯?

0 投票
2 回答
2664 浏览

c++ - 如何设置使用 CreateProcess 创建的进程的名称?

我正在按照在谷歌上找到的公式使用 CreateProcess 开始一个过程。我想知道的是,我可以设置创建进程的进程名称,以便在任务管理器中显而易见吗?

谢谢你——
道格拉斯

0 投票
6 回答
1557 浏览

c++ - 如何查找给定的应用程序是否是单实例?

我正在寻找一种有效的方法来查找给定的应用程序(例如 app.exe)是否是单实例?我想到了以下这些溶胶:

  1. 执行两次 CreateProcess() 并检查该应用程序是否有两个或多个实例正在运行?如果否,则为单实例应用程序。但是,这效率不高。
  2. 执行 CreateProcess() 并等待 1-2 秒。如果这个实例被杀死(因为已经有一个实例为它运行),它将是单实例应用程序。

但我不相信上述两种溶胶。在 Windows 中还有其他有效的方法吗?

请注意,我不会杀死或对该应用程序的已运行(如果有)实例进行任何修改。