C++ 如果其他IE实例已在运行,createprocess()将不会启动Intenet Explorer

C++ 如果其他IE实例已在运行,createprocess()将不会启动Intenet Explorer,c++,C++,我正在开发一个简单的应用程序启动程序,它应该从主窗口启动几个应用程序。 要启动的应用程序之一是Internet Explorer,它应该启动。 问题-只有在没有其他Internet Explorer实例正在运行时,我的代码才能正常工作。如果有,我的应用程序启动器将在正常(非最小化)窗口中启动其Internet Explorer实例。我仅使用Internet Explorer观察这种行为。如果我修改代码以启动记事本而不是Internet Explorer,则无论记事本的实例已经运行了多少,所有新的

我正在开发一个简单的应用程序启动程序,它应该从主窗口启动几个应用程序。 要启动的应用程序之一是Internet Explorer,它应该启动。 问题-只有在没有其他Internet Explorer实例正在运行时,我的代码才能正常工作。如果有,我的应用程序启动器将在正常(非最小化)窗口中启动其Internet Explorer实例。我仅使用Internet Explorer观察这种行为。如果我修改代码以启动记事本而不是Internet Explorer,则无论记事本的实例已经运行了多少,所有新的记事本实例都会按预期运行。以下是我的代码的相关部分,事实上这是非常基本的:

case IDC_MAIN_BUTTON5:
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    memset(&si, 0, sizeof(si));
    memset(&pi, 0, sizeof(pi));
    si.cb = sizeof(si);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_SHOWMINIMIZED;

    CreateProcess(L"C:\\Program Files\\Internet Explorer\\iexplore.exe",
    L"",
    NULL,
    NULL,
    FALSE,
    0,
    NULL,
    NULL,
    &si,
    &pi);

    WaitForInputIdle(pi.hProcess, 1000);

    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
}
break;

任何关于如何解决这个奇怪问题的想法或建议都将不胜感激

为什么在2020年,你要编写依赖IE的代码??此外,您启动的应用程序可以对是否应该最小化有自己的意见。你不一定能控制它。请放开Internet Explorer。已经做得够多了。它值得一试。与其强制打开Internet Explorer,不如在默认浏览器中使用
ShellExecute
@Jesper Juhl,不管它是Internet Explorer还是Microsoft Edge。行为是一样的。@tadman不管它是createprocess()还是shellexecute()。行为是一样的。为什么在2020年,你要编写依赖IE的代码??此外,您启动的应用程序可以对是否应该最小化有自己的意见。你不一定能控制它。请放开Internet Explorer。已经做得够多了。它值得一试。与其强制打开Internet Explorer,不如在默认浏览器中使用
ShellExecute
@Jesper Juhl,不管它是Internet Explorer还是Microsoft Edge。行为是一样的。@tadman不管它是createprocess()还是shellexecute()。行为是一样的。