使用C++处理火狐错误消息"无法加载XPCOM"

Handle firefox error message “Cannot load XPCOM” using C++

本文关键字:quot 加载 XPCOM C++ 处理 错误 消息 使用 火狐      更新时间:2023-10-16

我正在尝试使用CreateProcess()打开Mozilla Firefox。但是,如果我尝试打开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++处理该错误消息?

这是一种对我有用的不同方法:

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

参考:

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