如何要求重新启动火狐浏览器

How to ask to restart firefox?

本文关键字:重新启动 火狐浏览器      更新时间:2023-10-16

我创建了一个c++程序,该程序还安装了Firefox扩展。因此,要使此扩展程序正常工作,他需要重新启动Firefox。

那么,我怎样才能要求在用户使用火狐时重新启动它呢?

这种看起来像是这个问题的重复: winapi - 如何在C++中按名称获取进程句柄。从本质上讲,您要做的是"找到"进程"firefox.exe"(代替"target.exe),如果找到它成功,您会放置一个警告对话框以关闭Firefox并重新打开。如果没有,您只需继续安装或其他操作即可。希望这有帮助!

使用标题找到 Firefox 的主窗口。我猜Firefox将当前页面的标题附加到主窗口的标题中,因此FindWindow是不够的。尝试使用 EnumWindows 枚举顶级窗口,并在标题中找到包含"Mozilla Firefox"的窗口。如果您有窗口句柄,请向其发送WM_CLOSE消息(使用等待目标窗口处理消息的PostMessage),然后等待它消失。您可能会看到一个弹出窗口,以相同的方式找到并关闭它。如果 Firefox 主窗口在几秒钟后仍然打开(尝试反复找到它),您可以拨打TerminateProcess(为此您需要GetWindowThreadProcessIdOpenProcess)。当窗口关闭时,通过调用 CreateProcess 重新启动 Firefox 。(Web 上有很多关于所有这些 API 函数的示例。