0

**编辑我找到了解决这个问题的方法。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 个不同的数字发送到这两个输入提示中的每一个,以启动过程的每次迭代。

所以我想知道我所描述的是否可行,最好的方法是什么?

谢谢!

4

1 回答 1

0

**编辑我找到了解决这个问题的方法。createprocess() 函数调用中的第二个输入字段可以是传递给主函数中创建的进程 argv[] 的字符串。

示例: CreateProcess("M:\Projects\Force\Andrew\force\force.exe", "PASSME",NULL,NULL,FALSE, CREATE_NEW_CONSOLE,NULL,NULL,&StartupInfo[i],&ProcessInfo[i]);

这会将“PASSME”作为输入参数发送到正在生成的进程的主函数

于 2013-07-24T23:41:29.900 回答