作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个客户做一个项目。我们正在构建一个内部门户网站,出于各种(主要是政治)原因,我们最终为 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/
我是一名优秀的程序员,十分优秀!