第一章介绍了如何打开网站,这一章介绍一下使用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. Unity3D 物体移动方法总结

    1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...

  2. jquery 入口函数

    jQuery 入口函数: $(document).ready(function(){ // 执行代码 }); 或者 $(function(){ // 执行代码 }); JavaScript 入口函数: ...

  3. linklist和arraylist区别

    ArrayList更适合读取数据,linkedList更多的时候添加或删除数据.

  4. C# 两个datatable中的数据快速比较返回交集或差集[z]

    最基本的写法无非是写多层foreach循环,数据量多了,循环的次数是乘积增长的. 这里推荐使用Except()差集.Intersect()交集,具体性能没有进行对比. 如果两个datatable的字段 ...

  5. python 修改的函数装饰器

    把好的代码记录下来 方便以后学习 修改的函数参数装饰器 from functools import wraps import time import logging def warn(timeout) ...

  6. 查看 设置mysql时区

    # 查看时区 show variables like '%time_zone%'; system_time_zone CST time_zone SYSTEM # 设置全局 set global ti ...

  7. Isight Linux 2016hf2 安装步骤

    把License文件整个拷进去,都给执行权限 把ABAQUS.lic 里的 this_host 改为psn004 27011 改为26011 (区别于2017hf2) 杀掉2017的server ./ ...

  8. common skill

    lunix watch and kill progress 1.  ps -ef 2. kill -9 pid

  9. Winform 利用 Oracle.ManagedDataAccess访问Oracle数据库

    Winform 利用 Oracle.ManagedDataAccess访问Oracle数据库时出现以下错误: Message = "每个配置文件中只允许存在一个 <configSect ...

  10. java画按钮的边框

    import javax.swing.*;import java.awt.*;public class demo_4{    public static void main(String [] arg ...