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/