我正在开发浏览器帮助程序对象以获取客户端信息,如IP,URL,数据时间等。我收到此信息但无法将其存储到数据库中。出于存储目的,我使用Web服务将数据存储到数据库中。 Web服务直接存储信息,但从bho获取信息无法将数据存储到数据库中。并没有显示任何错误,我不知道是什么问题。
这是我的代码:
using System;
using System.Threading.Tasks;
using SHDocVw;
using mshtml;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace MyBHO
{
[
ComVisible(true),
Guid("8a194578-81ea-4850-9911-13ba2d71efbd"),
ClassInterface(ClassInterfaceType.None)
]
public class BHO : IObjectWithSite
{
string ip = new
System.Net.WebClient().DownloadString("http://icanhazip.com");
string datetimenow = DateTime.Now.ToShortDateString();
WebBrowser webBrowser;
HTMLDocument document;
在此功能中,我将数据发送到Web服务以将数据保存到数据库中,但是当运行它时,它会在表单上显示数据,但不会存储在数据库中。
public void OnDocumentComplete(object pDisp, ref object URL)
{
document = (HTMLDocument)webBrowser.Document;
System.Windows.Forms.MessageBox.Show("your log infomation: :" + ip+ "/n" + URL.ToString() + "/n"+ datetimenow);
logReciever.LogRecieverSoapClient client = new logReciever.LogRecieverSoapClient();
client.insertData(URL.ToString(), ip, datetimenow);
}
和
public int SetSite(object site)
{
if (site != null)
{
webBrowser = (WebBrowser)site;
webBrowser.DocumentComplete +=
new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
webBrowser.BeforeNavigate2 +=
new DWebBrowserEvents2_BeforeNavigate2EventHandler(this.OnBeforeNavigate2);
}
else
{
webBrowser.DocumentComplete -=
new DWebBrowserEvents2_DocumentCompleteEventHandler(this.OnDocumentComplete);
webBrowser.BeforeNavigate2 -=
new DWebBrowserEvents2_BeforeNavigate2EventHandler(this.OnBeforeNavigate2);
webBrowser = null;
}
return 0;
}
感谢您的帮助。