**编辑我找到了解决这个问题的方法。createprocess() 函数调用中的第二个输入字段可以是传递给主函数中创建的进程 argv[] 的字符串。
例子:
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);
}
于是force.exe程序接二连三地接受两个输入提示。我希望将 2 个不同的数字发送到这两个输入提示中的每一个,以启动过程的每次迭代。
所以我想知道我所描述的是否可行,最好的方法是什么?
谢谢!