gpt4 book ai didi

c++ - Internet Explorer BHO 检查站点的多实例

转载 作者:行者123 更新时间:2023-11-28 03:50:22 24 4
gpt4 key购买 nike

我正在为一个客户做一个项目。我们正在构建一个内部门户网站,出于各种(主要是政治)原因,我们最终为 IE8 构建了一个 BHO。 t 所做的其中一件事是确保一次只能打开一个门户实例。它通过在门户打开时写入一个临时文件来实现。不幸的是,这不是最佳的,因为如果 IE 因任何原因崩溃,那么下次启动门户时,用户将一直盯着“未经授权”的消息,直到删除陈旧的临时文件。所以我的问题是:在 BHO 中是否有任何方法可以查看同一 url 被加载了多少次?我的意思是有什么方法可以直接从 IE 获取该信息吗?实际上比这复杂一点,因为我们需要允许弹出窗口等。但这将是一个好的开始。

感谢您的宝贵时间。

最佳答案

如果你想限制当前用户 session 中的浏览器实例,你可以使用互斥锁而不是文件。尝试在具有合理超时的 BHO 启动时(在 SetSite 调用中)获取互斥锁,并在最终的 SetSite 调用中再次释放。

如果结果是 WAIT_OBJECT_0 或 WAIT_ABANDONED,则没有其他 BHO 实例持有互斥量,而 WAIT_ABANDONED 发生在另一个线程在持有互斥量时崩溃。如果结果是 WAIT_TIMEOUT,则互斥量已被另一个 BHO 实例占用,您不应让用户根据您的要求使用您的网站。

但如果我是坚定的用户,我可以启动 XP Mode 并从那里访问网站...

关于c++ - Internet Explorer BHO 检查站点的多实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com