这是
不是
查看以下图片:
我需要得到的HTML显示区(又名视口)偏移到0/0的IE窗口。
-
-
我正在使用C#with SHDocVw.InternetExplorer库来访问/控制IE。
我真正想做的是触发双击事件
-
类似于IHTMLElement.click(),只需双击()
-
多次调用IHTMLElement.click()无效
所以现在我控制鼠标来触发某些事件,调用
[DllImport("user32.dll")] public static extern bool GetCursorPos(out PointInter lpPoint);
类似于获取和设置鼠标光标,模拟双击某些元素。
对于鼠标导航,我已经考虑过了
-
-
IE窗口左侧和顶部属性
-
IHTMLElement(3).getClientBoundingRect的位置,即要触发的元素的位置
当IE配置相同时,这一切都可以很好地工作。我的假设:
-
相同的HTML视口偏移(相同的工具栏、菜单等)
-
HTML视口缩放100%(无页面缩放)
所以我需要的是:
-
HTML视口的垂直偏移(在两个屏幕截图中都是106像素)
-
HTML视口的水平偏移(第一个是1,第二个是291)
-
HTML视口的缩放因子(在两个屏幕截图中均为100%)
我曾尝试访问ShDocVw.InternetExplorer对象中的多个元素,但我要么有错误的接口类型转换,要么它不愿意公开此信息,因为我还找不到它。
你们有谁知道怎么处理这个问题吗?一些晦涩难懂的COM/OLE咒语和仪式可以引导鼠标光标前进?
编辑:
虽然这是一个解决方案,但如果用户在应用程序工作时更改缩放,那么考虑到在以后运行时可能发生的布局/显示更改,这是非常难看和无用的。