通过System.Windows.Automation访问Chrome中的Silverlight窗口
发布时间:2020-12-14 05:39:48 所属栏目:Windows 来源:网络整理
导读:这可能是徒劳的,但我想知道是否有人有这方面的经验. 我正在尝试使用System.Windows.Automation(例如,AutomationElement)访问Google Chrome中托管的Silverlight应用程序. 我遇到的问题是Chrome在子进程中托管Silverlight应用程序.如果我试图找到“Silverlight
这可能是徒劳的,但我想知道是否有人有这方面的经验.
我正在尝试使用System.Windows.Automation(例如,AutomationElement)访问Google Chrome中托管的Silverlight应用程序. 我遇到的问题是Chrome在子进程中托管Silverlight应用程序.如果我试图找到“Silverlight Control”AutomationElement(通过使用主进程’hWnd),它将失败. 如果我找到Silverlight主机子进程,它没有窗口句柄,如果我尝试使用子进程找到控件’处理它失败. 我知道它在那里……我可以用Inspect看到它 但我只能通过点击Silverlight应用程序并在Inspect中导航来找到它.我无法使用AutomationElement.FindFirst或Inspect从选项卡窗口向下导航. 就像窗口和Silverlight插件之间的断开一样,这在IE或Firefox中是看不到的,我不知道如何绕过它. 还有其他人能够做到这一点吗? 解决方法
我不确定这在你的实例中是否有帮助,但是我遇到了几个需要从外部启用Silverlight通信的实例(需要与Silverlight应用程序通信的Office应用程序AddIns).我在托管Silverlight应用程序的html页面中使用了javascript作为该通信的桥梁:
function sendToNav(message) { var nav = document.getElementById("Nav"); nav.content.NavigationPage.HandleScriptedMessage(message); } function passMessageToHost(message) { if (window.external == null) return; window.external.HandleScriptedMessage(message); } 如果我能提供任何其他信息,请告诉我.希望这对你有用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读