同时运行多个可执行文件实例

时间:2014-02-26 22:01:10

标签: windows createprocess

我想知道如何循环一个函数来多次打开一个可执行程序。我尝试将系统(路径)和CreateProcess(Lpath,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL)放在while,do while和for循环中,但只打开程序一次。

以下是相关代码现在的样子:

for(int i=0; i<10; i++)
    {    
        CreateProcess(L"C:\\Users\\Ben\\Documents\\Visual Studio 2010\\Projects\\RANDWritter\\Debug\\RANDWritter.exe", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
    }

任何人都知道该怎么做?

1 个答案:

答案 0 :(得分:1)

在使用GetLastError进行检查之前,查看您调用的函数是否返回错误代码总是明智的。如果它只是返回了成功代码,那么从GetLastError获得的值可能是假的。所以也要使用BOOL createdOK = CreateProcess(...),并在调用GetLastError之前检查返回值是否为!= FALSE。

但如果你得到了真正的错误87,那就解释了:它的名字是ERROR_INVALID_PARAMETER(你可以在MSDN's System Error Codes页面查看)。查看CreateProcess的MSDN文档,您可能无法省略lpStartupInfo和lpProcessInformation参数。无论如何填写这些内容也是一个好主意,因为它们会为您提供有关新创建过程的信息。更重要的是,因为ProcessInformation中返回的句柄也必须在完成后手动CloseHandle。