C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录

Igor C/C++/C# 软件攻城狮评论19,233字数 1638阅读5分27秒阅读模式
第一章介绍了如何打开网站,这一章介绍一下使用IHTMLDocument3完成登录博客园,以下为代码:
复制代码
SHDocVw.InternetExplorer oBrowser = new SHDocVw.InternetExplorer();
            object objFlags = 2;
            object objTargetFrameName = "_self";
            object objPostData = "";
            object objHeaders = "";
            oBrowser.Visible = true;
            oBrowser.Navigate("https://passport.cnblogs.com/user/signin", ref objFlags, ref objTargetFrameName, ref objPostData, ref objHeaders);
            while (true)
            {
                Thread.Sleep(1000);
                if (oBrowser.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
                    break;
            }
            IHTMLDocument3 doc3 = (IHTMLDocument3)oBrowser.Document;
            IHTMLInputElement txtUserName = (IHTMLInputElement)doc3.getElementById("input1");
            txtUserName.value = "你的用户名";
            IHTMLInputElement txtPassWord = (IHTMLInputElement)doc3.getElementById("input2");
            txtPassWord.value = "你的密码";
            doc3.getElementById("signin").click();
复制代码

使用以上代码就成功登录到博客园了,下面整理一下IHTMLDocument3以及相关的一些方法和属性:

IHTMLDocument3 方法说明
attachEvent从IE11开始,使用addEventListener。将指定的函数绑定到一个事件,以便每当事件在对象上触发时,该函数被调用。
createDocumentFragment创建一个新文档并返回一个指向新创建的文档的指针。
createTextNode从指定的值创建一个文本字符串。
detachEvent从事件中取消绑定指定的功能,以使该功能在事件触发时停止接收通知。
getElementById返回对具有指定值id属性的第一个对象的引用。
getElementsByName根据name属性的值获取对象集合。
getElementsByTagName根据指定的元素名称检索对象的集合。
recalc此元素已过时,不再使用。重新计算当前文档中的所有动态属性。
releaseCapture从当前文档中的对象中删除鼠标捕获。
IHTMLDocument3属性与事件说明
baseUrl
dir设置或检索指示对象的读取顺序的值。
documentElement获取对文档根节点的引用。
enableDownload设置启用下载
inheritStyleSheets暂未说明
onbeforeeditfocus设置焦点之前
oncellchange当数据来源发生变化时
oncontextmenu当按下鼠标右键出现菜单或通过键盘触发页面菜单时
onpropertychange改变属性时
onrowsdelete当前数据记录被删除时
onrowsinserted当前数据源将要插入新数据时
uniqueID检索对象的自动生成的唯一标识符。
onstop停止或离开时
ondatasetchanged数据源发生变化时
ondatasetcomplete当数据接收完成时
ondataavailable当数据源的全部有效数据读取完毕时

这一章介绍了IHTMLDocument3,并且使用IHTMLDocument3完成了登录,下一章介绍IHTMLDocument2以及用法.

文章末尾固定信息

历史上的今天
3 月
10
weinxin
我的微信
我的微信
一个码农、工程狮、集能量和智慧于一身的、DIY高手、小伙伴er很多的、80后奶爸。
 
Igor
  • 本文由 Igor 发表于 2019-03-1018:37:45
c# - 异步使用MySQL DB C/C++/C#

c# – 异步使用MySQL DB

C#异步读取MySQL数据库的问题解决。 我试图了解异步使用数据库。为此,我用一个表创建了简单的MySQL数据库,然后可以通过以下方式从中获取信息: public static void SyncRe...
OpenCV在C#中应用—OpenCVSharp OpenCV

OpenCV在C#中应用—OpenCVSharp

之前一直是基于OpenCV开发视觉算法,但C++语言对于GUI的开发相对于C#来说确实很不方便,之前就了解到C#下使用OpenCV可以使用EmguCV,这段时间也确实是调通了,但是是通过把C++封装成...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证