C# Web 浏览器消息框 - 复制警报文本
Posted
技术标签:
【中文标题】C# Web 浏览器消息框 - 复制警报文本【英文标题】:C# Web Browser Message Box - Copy The Alert text 【发布时间】:2012-04-07 17:46:29 【问题描述】:我想用网络浏览器制作一个程序 所以我做了帐户密码更改器(用于游戏网站) 当我单击更改密码时,它会更改它,但我不确定 它会在网络浏览器上显示警报密码已更改或旧通行证无效等 我想复制警报文本以知道它已更改或现在 任何人都可以帮助我 ?
【问题讨论】:
Windows 窗体还是 WPF?提及 C# 无助于以任何方式解决您的问题,因为 IE 的 API 是语言中立的 COM。 @sheng-jiang Windows Forms(它不是程序,它是应用程序的插件) 【参考方案1】:如果您使用的是 Windows 窗体的 webbrowser 类,Implement IDocHostShowUI on your webbrowser site。
如果你使用的是 aximp 生成的包装类,Implement IDocHostShowUI on the container's IOleClientSite implementation。
当控件调用 IDocHostShowUI::ShowMessage 方法时,文本将传递给您
【讨论】:
code MyWebBrowser Webb = new MyWebBrowser(); Webb.DocumentText = @"<html><head><body><script language='JScript'>alert(""Test Only"")</script></body></head></html>"; Webb.ShowMessage += (sender, e) => e.Handled = true; System.Windows.Forms.MessageBox.Show("New Alert = " + e.Result); ;
我有测试并且它工作但无法获取警报的文本并且它显示新警报 = 没有文本
您使用的控件没有容器,不支持。同样设置文档文本是一个异步操作,需要等待 DocumentCompleted 事件并在当前线程中泵送消息。这个 ShowMessage 是如何提出的?它应该有类似 DocHostShowUIShowMessageEvent.SetParameters(hwnd, lpstrText, lpstrCaption, dwType, lpstrHelpFile, dwHelpContext, lpResult);在引发事件之前将数据保存在事件参数中以上是关于C# Web 浏览器消息框 - 复制警报文本的主要内容,如果未能解决你的问题,请参考以下文章