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

第一章介绍了如何打开网站,这一章介绍一下使用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
  • 版权声明: 发表于 2019-03-1018:37:45
  • 转载注明:http://blog.tsingmac.com/prolions/codelanguage/mscs/1796/
c# - 异步使用MySQL DB C/C++/C#

c# – 异步使用MySQL DB

C#异步读取MySQL数据库的问题解决。 我试图了解异步使用数据库。为此,我用一个表创建了简单的MySQL数据库,然后可以通过以下方式从中获取信息: public static void SyncRe...
如何移动 nuget 缓存文件夹 C/C++/C#

如何移动 nuget 缓存文件夹

本文告诉大家如何移动 nuget 缓存文件夹。 因为 nuget 文件夹一般比较大,现在我的 nuget 文件夹有 10 G,默认的 nuget 文件夹是在C盘,所以需要移动他。
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: