第一章介绍了如何打开网站,这一章介绍一下使用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以及用法.

C#通过COM组件操作IE浏览器(二):使用IHTMLDocument3完成登录的更多相关文章

  1. C#通过COM组件操作IE浏览器(一):打开浏览器跳转到指定网站

    简介Internet Explorer对象模型 1.属性 属性 类型 描述 Application Object 返回对Internet Explorer对象的引用. Busy Boolean 返回一 ...

  2. C#通过COM组件操作IE浏览器(四):实用代码总结

    //执行js方法 IHTMLWindow2 win = oDocument2.parentWindow; win.execScript("functiona();", " ...

  3. C#通过COM组件操作IE浏览器(三):了解IHTMLDocument2

    IHTMLDocument2方法 说明 write 写入 writeln 写入并换行 open 打开一个流,以收集 document.write 或 document.writeln 的输出 clos ...

  4. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  5. C# 操作IE浏览器

    最近的一个B/S系统中,用到了指模录入,当用户按了手指摸之后,要在IE浏览器的一个文本框上显示用户的姓名.由于要监控指模机的输入,因此客户端需要装一个.net控制台程序,通过此控制台程序监控指模机.这 ...

  6. 【Android】安卓四大组件之Activity(二)

    [Android]安卓四大组件之Activity(二) 前言 在这篇文章之前,我已经写过了一篇有关Activity的内容,是关于activity之间的页面跳转和数据传递,而这篇文章着重强调的是Acti ...

  7. AngularJs的UI组件ui-Bootstrap分享(二)——Collapse

    Collapse折叠控件使用uib-collapse指令 <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" xml ...

  8. laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题

    遇到的问题: laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的问题(safari下也有同样问题); 解决办法: 给laydate绑定id; 解决前代码: <input ...

  9. Asp.Net调用Office组件操作时的DCOM配置 (转)

    Asp.Net调用Office组件操作时的DCOM配置 http://blog.csdn.net/gz775/article/details/6447758 在项目中将数据导出为Excel格式时出现“ ...

随机推荐

  1. C# Task.Run 和 Task.Factory.StartNew 区别

    Task.Run 是在 dotnet framework 4.5 之后才可以使用,但是 Task.Factory.StartNew 可以使用比 Task.Run 更多的参数,可以做到更多的定制.可以认 ...

  2. JavaSE基础知识(5)—面向对象(5.5 this和super关键字)

    一.this关键字 1.说明 this关键字代表当前类的对象,可以访问本类的属性.方法.构造器注意:谁调用该方法,则this就指谁 2.语法 访问属性: this.属性名 = 值; System.ou ...

  3. mysql保存乱码(C#)

    解决办法只有一个就是在配置文件中强制指定编码格式:<add name="TSDBEntities" connectionString="metadata=res:/ ...

  4. Centos7 安装可视化图形

    因为安装的Centos7最小安装包,虚拟机没有可视化界面,可以采用下列命令,安装可视化界面. init id::initdefault: yum install -y libdevmapper* yu ...

  5. FastDFS api介绍

    1. 命令行api介绍 FastDFS提供了可用于运维测试的命令行api,下面进行介绍: 1.1 fastdfs服务管理 tracker进程服务管理脚本 /etc/init.d/fdfs_tracke ...

  6. linux 学习之路:mkdir命令使用

    linux mkdir 命令 在当前目录下创建文件夹,当前账号需要保证目录下有写到权限. 1.命令格式 mkdir[选项]文件名 mkdir  创建目录文件 语法:mkdir [ -m Mode ] ...

  7. Django实现文件的上传

    Django实现文件的上传 1.前端页面:使用file对象,读取文件对象传递到views中.需要设定enctype="multipart/form-data",表明不对字符进行编码 ...

  8. HDU-4763 Theme Section KMP

    题意:求最长的子串E,使母串满足EAEBE的形式,A.B可以任意,并且不能重叠. 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=4763 思 ...

  9. mysql第一课,数据库的简单简单操作方法(配图略虐狗)

    mysql -u root -p 并输入密码进入mysql管理界面 show databases; 显示数据库列表 use 数据库名; 进入该数据库 show tables;显示表列表 建立新表 添加 ...

  10. C++动态库的几点认识

    1.动态库也有lib文件,称为导入库,一般大小只有几k: 2.动态库有静态调用和动态调用两种方式: 静态调用:使用.h和.lib文件 动态调用: 先LoadLibrary,再GetProcAddres ...