从C+;获取已启动提示符的进程Id+;可执行 使用C++ Boost我正在创建一个命令行应用程序。 出于某种原因,我需要启动可执行文件的命令提示符的PID。 可执行文件是用C++编写的,并且在Boost中建立了Eclipse IDE/P> < P>,您的应用程序无法知道创建它的进程的PID。

从C+;获取已启动提示符的进程Id+;可执行 使用C++ Boost我正在创建一个命令行应用程序。 出于某种原因,我需要启动可执行文件的命令提示符的PID。 可执行文件是用C++编写的,并且在Boost中建立了Eclipse IDE/P> < P>,您的应用程序无法知道创建它的进程的PID。,c++,windows,boost,C++,Windows,Boost,如果您正在查找当前进程的PID,请查看(因为您显然是在Windows上运行的) 如果要查找父进程的PID,唯一的解决方案是让父进程将其作为参数传递给子进程: 从命令行应用程序中,提取PID(cmd.exe的PID) 将其传递给您的程序:>myprogram.exe%PID% 从程序的主函数中,使用argv[1]传递父级的PID 或者,您可以尝试这样做:当您的程序运行时,cmd.exe窗口标题将被更改,并允许在其中显示程序名(正在运行的命令)。因此,如果您在代码中执行相当于tasklist/

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

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

  • 从命令行应用程序中,提取PID(cmd.exe的PID)
  • 将其传递给您的程序:>myprogram.exe%PID%
  • 从程序的主函数中,使用
    argv[1]
    传递父级的PID

或者,您可以尝试这样做:当您的程序运行时,
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","DOMAIN\USER","0:00:00","cmd.exe - myprogram"

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

问题是,代码如何获得它正在执行的进程的PID?或者是关于其他程序获取它启动的进程的PID?或者是关于其他程序获得独立启动的程序Xyz实例的PID?请对这里的场景更清楚一点,“提示”不是一个过程,所以它没有PID。您试图识别哪个进程?我正在打开一个命令提示符,然后通过转到该路径执行exe文件。因此,在这种情况下,它不是一个提示符,而是在打开的cmd上运行的cmd.exe进程,并显示在taskmanager@harryjohnstocorrect@chearsandhth.-Alf我不能正确地问这个问题,但你说对了。有一个程序可执行文件从命令提示符启动,因此我需要该命令提示符的PID它启动了@干杯。-阿尔菲不希望用户每次启动程序都通过PID。是否有任何方法可以生成一个唯一的数字,而不仅仅取决于概率?即使这样也能解决我的问题。@Milind:对不起,这绝对是唯一的办法solution@Milind:检查我的编辑,可能这对您有用有更好的方法,请参阅