gpt4 book ai didi

c++ - 我应该怎么做才能使用新的命令提示符窗口获取新进程?

转载 作者:可可西里 更新时间:2023-11-01 11:39:44 24 4
gpt4 key购买 nike

我有两个控制台应用程序,第一个运行第二个:

1_第一个控制台应用程序:

#include <Tchar.h>
#include <windows.h>
#include <iostream>
using namespace std;

void main(){
PROCESS_INFORMATION obj1;
memset(&obj1,0,sizeof(PROCESS_INFORMATION));
STARTUPINFOW obj2;
memset(&obj2,0,sizeof(STARTUPINFOW));
obj2.cb=sizeof(STARTUPINFOW);
CreateProcessW(_TEXT("c:\\runme.exe"),_TEXT("hello what's up?"),NULL,NULL,FALSE,NULL,NULL,NULL,&obj2,&obj1);
}

2_second 名为 runme.exe 的控制台应用程序:

#include <stdio.h>
#include <iostream>
using namespace std;

int main(int argc,char * * argv){
if (argc>0)
for (int i=0;i<argc;i++)
cout <<"**->**"<<argv[i]<<"\n";
}

现在我的问题是两个应用程序将使用相同的命令提示符窗口,我应该怎么做才能让它们使用不同的命令提示符窗口?

最佳答案

调用 CreateProcess 时,在进程创建标志(第六个参数)中传递 CREATE_NEW_CONSOLE

CreateProcessW(L"c:\\runme.exe",L"hello what's up?",NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&obj2,&obj1);

当您调用 CreateProcessW 时,您不想在字符串上使用 _TEXTCreateProcessW 总是采用宽字符串,因此您应该始终在它们上使用 L 前缀。 _TEXT(或 _T)用于CreateProcess(无后缀),因此它可以从窄根据您是否定义了 UNICODE/_UNICODE,将其转换为宽字符串。

关于c++ - 我应该怎么做才能使用新的命令提示符窗口获取新进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3563396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com