从c++可执行文件中获取启动提示符的进程Id

Get Process Id of launched Prompt from C++ Executable

本文关键字:提示符 进程 Id 启动 获取 c++ 可执行文件      更新时间:2023-10-16

使用c++ Boost创建命令行应用程序。由于某些原因,我需要启动可执行文件的命令提示符的PID。可执行文件是用c++和boost一起编写的,内置在eclipse IDE

你的应用程序不可能知道创建它的进程的PID。

如果您正在查找当前进程的PID,请查看msc++获取当前进程的PID(因为您显然在Windows上运行)。

如果您正在寻找父进程的PID,唯一的解决方案是让父进程将其作为参数传递给子进程:

  • 从命令行应用程序,检查这篇文章,提取你的PID (cmd.exe的PID)
  • > myprogram.exe %PID%
  • 从你的程序的主要功能,获得父PID通过argv[1]

或者,您可以尝试这样做:当您的程序运行时,更改cmd.exe窗口标题,并在其中显示程序名称(正在运行的命令)。因此,如果您在代码中执行相当于tasklist /v /fo csv | findstr /i "myprogram"的操作,则输出将显示启动它的正在运行的cmd.exe进程的PID。

>tasklist /v /fo csv | findstr /i "myprogram"
"cmd.exe","44372","Console","1","4 900 Ko","Running","DOMAINUSER","0:00:00","cmd.exe - myprogram"

请注意,如果启动了许多程序,您将无法知道谁是谁。但如果只有一个工作,这应该可以解决问题。