c++ - 尝试分配一个 DefaultGroupId

标签 c++ windows-7 firefox-addon xpcom

Firefox 使用 this source code 分配一个 defaultGroupId在 C++ 中。

通过 XPCOM 我可以这样得到它:

Cc["@mozilla.org/windows-taskbar;1"].getService(Ci.nsIWinTaskbar).defaultGroupId;

我也可以使用 nsIWinTaskbar 服务来设置它,但每次打开窗口时我都必须这样做。

所以基本上无论何时打开一个窗口,它都会以默认组 ID 打开。

我想更改那个 defaultGroupId。这可能吗?我的替代方法是在每个窗口打开时设置组 ID,这是一种密集型操作,因此我想避免 :(

最佳答案

首先 defaultGroupId 实际上并没有被分配。它本质上是一个 getter 属性,每次访问它时都会重新计算。 所以你不能重新分配它

您可以覆盖/代理整个服务,但这也不起作用,因为在某些地方也会直接调用该方法,绕过您提供的备用 XPCOM 实现。所以你不能覆盖它。

你不想给进程内存打补丁,因为那会是一个很大的 hack,它最迟在未来的版本中炸毁你的脸。

所以不,您不能覆盖/重新分配默认值。

关于c++ - 尝试分配一个 DefaultGroupId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24273645/

相关文章:

php - 无法在 Windows 7 上使用 PHP 连接到 MySQL

css - 通过浏览器插件加载额外的 CSS 文件?

javascript - 如何编写一个在私有(private)模式下自动关闭的 Firefox 插件?

c++ - 继承期间 protected 成员的 pimpl

c++ - time_t 在 windows 中来回串接

c++ - 在 C++ 的宽松内存模型中是否存在依赖循环的非因果行为?

javascript - Firefox Web开发者工具栏: JS does not work after an "on the fly" HTML edit

c++ - 使用 Korge 编译 native 时抛出错误 "Unable to find library"

python-3.x - 找不到满足 python 3 conda 的版本

Windows 7 - 从开发人员的角度来看会有什么期望?