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 浏览器消息框 - 复制警报文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中使用警报消息来处理成功消息?

在后面的 C# 代码中显示“是/否”警报框

使用 WebMethod 返回带有 Message 的警报框

ASP.NET Web 应用程序消息框

默认文本框消息不适用于 Internet Explorer

如何在C#中显示没有任何按钮的消息框