将输入发送到windows计算机上使用C中的createprocess()创建的进程
**编辑 我已经找到了这个问题的解决办法。createprocess()函数调用中的第二个输入字段可以是传递给主函数中创建的进程argv[]的字符串 例如:将输入发送到windows计算机上使用C中的createprocess()创建的进程,c,input,createprocess,C,Input,Createprocess,**编辑 我已经找到了这个问题的解决办法。createprocess()函数调用中的第二个输入字段可以是传递给主函数中创建的进程argv[]的字符串 例如: CreateProcess("M:\\Projects\\Force\\Andrew\\force\\force.exe", "PASSME",NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&StartupInfo[i],&ProcessInfo[i]); 这将把“PASSME
CreateProcess("M:\\Projects\\Force\\Andrew\\force\\force.exe", "PASSME",NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&StartupInfo[i],&ProcessInfo[i]);
这将把“PASSME”作为输入参数发送给正在生成的进程的主函数
正如标题所说,我正试图编写一个程序,将信息作为输入发送到其他控制台应用程序。我正在编写的程序启动程序的3次迭代,并向每次迭代发送不同的输入。到目前为止,我掌握的代码是:
PROCESS_INFORMATION ProcessInfo[3];
STARTUPINFO StartupInfo[3];
for(i=0;i<number;i++)
{
ZeroMemory(&StartupInfo[i], sizeof(StartupInfo[i]));
StartupInfo[i].cb = sizeof (StartupInfo[i]) ; //Only compulsory field
CreateProcess("M:\\Projects\\Force\\Andrew\\force\\force.exe", NULL,NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&StartupInfo[i],&ProcessInfo[i]);
}
for(i=0;i<number;i++)
{
WaitForSingleObject(ProcessInfo[i].hProcess,INFINITE);
CloseHandle(ProcessInfo[i].hThread);
CloseHandle(ProcessInfo[i].hProcess);
}
PROCESS_信息ProcessInfo[3];
STARTUPINFO STARTUPINFO[3];
对于(i=0;i**编辑),我已找到此问题的解决方案。createprocess()函数调用中的第二个输入字段可以是传递给主函数中创建的进程argv[]的字符串
例如:
CreateProcess(“M:\Projects\Force\Andrew\Force\Force.exe”、“PASSME”、NULL、NULL、FALSE、CREATE\u NEW\u CONSOLE、NULL、NULL、&StartupInfo[i]、&ProcessInfo[i])
这会将“PASSME”作为输入参数发送给正在生成的流程的主要功能您是否查看了STARTUPINFO
结构的hStdInput
字段?如果您已经有了问题的答案,为什么不将其添加为答案?