问题描述
功能:开发一个winform小程序监视IE打开的特定网页文本框的输入内容进行提示。举例说明功能需求:IE打开的网页代码:index.html<html><head><title>测试<title></head><body><inputtype="text"name="aaa"></body></html>需要开发一个winform小程序,当用IE打开上面的index.html网页,当我们在aaa文本框中输入一个值如:bbbb,当鼠标离开aaa文本框时,winform弹出对话框messagebox,显示输入值bbb。注:winform不能使用webbrowser控件!跪请各位高手给予帮助指点,这个如何实现,最好能给点关键代码,谢谢谢谢谢谢!!本人搞不懂的问题1:index.html网页中aaa文本框没有onblur事件,或mouseleave时间,不知道怎么能激活winform。2:如何用winform监视iE指定网页文本框内容?
解决方案
解决方案二:
首先你的找到浏览器控件的句柄有了句柄你就可以通过句柄得到一个Document对象代码如下:classWin32{[DllImport("user32",EntryPoint="SendMessage")]publicstaticexternintSendMessage(IntPtrhwnd,intwMsg,IntPtrwParam,refIntPtrlParam);[DllImport("user32",EntryPoint="RegisterWindowMessage")]publicstaticexternintRegisterWindowMessage(stringlpString);[DllImport("OLEACC.DLL",EntryPoint="ObjectFromLresult")]publicstaticexternintObjectFromLresult(intlResult,refSystem.Guidriid,intwParam,[MarshalAs(UnmanagedType.Interface),System.Runtime.InteropServices.In,System.Runtime.InteropServices.Out]refSystem.ObjectppvObject);}publicmshtml.IHTMLDocument2GetHtmlDocument(IntPtrhwnd){System.ObjectdomObject=newSystem.Object();IntPtrtemp=IntPtr.Zero;System.GuidguidIEDocument2=newGuid();intWM_Html_GETOBJECT=Win32.RegisterWindowMessage("WM_Html_GETOBJECT");intW=Win32.SendMessage(hwnd,WM_Html_GETOBJECT,IntPtr.Zero,reftemp);intlreturn=Win32.ObjectFromLresult(W,refguidIEDocument2,0,refdomObject);mshtml.IHTMLDocument2doc=(mshtml.IHTMLDocument2)domObject;returndoc;}
你需要添加引用Microsoft.mshtml.dll然后你就可以这样用了然后我也不知道怎么满足你的需求了我只能帮你到这里了
解决方案三:
引用1楼crystal_lz的回复:
首先你的找到浏览器控件的句柄有了句柄你就可以通过句柄得到一个Document对象代码如下:classWin32{[DllImport("user32",EntryPoint="SendMessage")]publicstaticexternintSendMessage(IntPtrhwnd,intwMsg,IntPtrwParam,refIntPtrlParam);[DllImport("user32",EntryPoint="RegisterWindowMessage")]publicstaticexternintRegisterWindowMessage(stringlpString);[DllImport("OLEACC.DLL",EntryPoint="ObjectFromLresult")]publicstaticexternintObjectFromLresult(intlResult,refSystem.Guidriid,intwParam,[MarshalAs(UnmanagedType.Interface),System.Runtime.InteropServices.In,System.Runtime.InteropServices.Out]refSystem.ObjectppvObject);}publicmshtml.IHTMLDocument2GetHtmlDocument(IntPtrhwnd){System.ObjectdomObject=newSystem.Object();IntPtrtemp=IntPtr.Zero;System.GuidguidIEDocument2=newGuid();intWM_Html_GETOBJECT=Win32.RegisterWindowMessage("WM_Html_GETOBJECT");intW=Win32.SendMessage(hwnd,WM_Html_GETOBJECT,IntPtr.Zero,reftemp);intlreturn=Win32.ObjectFromLresult(W,refguidIEDocument2,0,refdomObject);mshtml.IHTMLDocument2doc=(mshtml.IHTMLDocument2)domObject;returndoc;}你需要添加引用Microsoft.mshtml.dll然后你就可以这样用了然后我也不知道怎么满足你的需求了我只能帮你到这里了
句柄你可以通过FindWindowEx函数去找我上面的代码是直接用spy++抓出来写死的一个句柄
解决方案四:
这属于木马和流氓软件范畴了吧