代码之家  ›  专栏  ›  技术社区  ›  msc

处理Firefox错误信息不能使用C++加载

  •  0
  • msc  · 技术社区  · 6 年前

    我正在尝试使用 CreateProcess() 是的。但是,如果我尝试打开Firefox时它正在自动更新,则会收到以下错误消息:

    无法加载xpcom

    我需要重新启动应用程序。

    这是我使用的代码:

    path = MozillaExePath.c_str();
    
    STARTUPINFO info = { sizeof(STARTUPINFO), NULL, NULL, "FireFox", 0,0,800, 600, NULL, NULL, NULL,    NULL, NULL, 0, NULL, NULL, NULL, NULL };
    PROCESS_INFORMATION processInfo;
    
    if (CreateProcess(path, NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
    {
        WaitForSingleObject(processInfo.hProcess, 3000);
        CloseHandle(processInfo.hProcess);
        CloseHandle(processInfo.hThread);
    }
    else
    {
        WriteLogFile("May be error with mozilla firefox...\n");
        exit(1);
    }
    

    那么,如何使用C++处理错误消息呢?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Isma    6 年前

    有一种不同的方法对我有效:

    #include <shellapi.h>
    
    [...]
    
    if (ShellExecute(NULL, TEXT("open"), TEXT("firefox.exe"), NULL, NULL, 0) <= HINSTANCE(32))
    {
        WriteLogFile("Could not open Mozilla Firefox...\n");
    }
    

    参考:

    https://docs.microsoft.com/en-us/windows/desktop/api/shellapi/nf-shellapi-shellexecutea