我知道如何检测已经运行的浏览器。现在,我想知道如何检测当前正在执行的浏览器,我也想知道如何检测c#winforms中某些浏览器的新标签/窗口是否打开。
E-克
如果用户点击x浏览器;我的程序应该告诉x浏览器正在运行。现在如果用户在该浏览器中打开一个新选项卡,那么我的程序应该告诉“在x浏览器中打开选项卡”。
我做了研究,但找不到确切的! 感谢
答案 0 :(得分:2)
有两种方法可以做到这一点,它们都使用P/Invoke,因为没有托管代码:
提示:
- 调用SetWinEventHook的客户端线程必须具有消息循环才能接收事件。
- 对于上下文事件,事件在调用SetWinEventHook的同一线程上传递。
- 当您使用SetWinEventHook在托管代码中设置回调时,[您应该明确告诉]垃圾收集器不要移动回调。
- 当钩子函数处理事件时,可能会触发其他事件,这可能导致钩子函数在原始事件的处理完成之前重新进入。钩子函数中重入的问题是事件是按顺序完成的,除非钩子函数处理这种情况。有关详细信息,请参阅Guarding Against Reentrancy。