c# 控制IE浏览器

原文 http://www.cnblogs.com/love2wllw/archive/2010/05/19/1739327.html

想写一个桌面程序,用C#。
程序运行后,会用IE打开指定的网页,并自动登录网站,再根据需要进行一些操作。
关键是不知道怎么控制IE浏览器,请大家指点一下。

相关内容如下:

C#控制IE浏览器
引入 C:\WINDOWS\System32\mshtml.tlb、Interop.SHDocVw.dll

/// <summary>
/// 返回指定Url的IE窗口下的 IHTMLDocument2 对象。
/// </summary>
/// <returns>IHTMLDocument2</returns>
public static IHTMLDocument2 GetIHTMLDocument2ByUrl(string url)
{
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
string filename = System.IO.Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals(“iexplore“) && ie.LocationURL == url)
{
return ie.Document as IHTMLDocument2;
}
}
}

通过 GetIHTMLDocument2ByUrl 方法可以获取已打开的IE窗口中指写地址的窗口中的 IHTMLDocument2 对象。
利用这个对象,就可以进行相关操作。
1.填写表单
IHTMLDocument2 iHTMLDocument2 = GetIHTMLDocument2ByUrl(“http://www.163.com“);
IHTMLInputElement input = (IHTMLInputElement)iHTMLDocument2.all.item(“Username“, 0); // 获取指定名称的对象
input.value = “Xiao“; // 赋值

2.点击按钮
IHTMLDocument2 iHTMLDocument2 = GetIHTMLDocument2ByUrl(“http://www.163.com“);
HTMLDocumentClass obj = (HTMLDocumentClass)iHTMLDocument2;
IHTMLElement iHTMLElement = null;
IHTMLElementCollection c = obj.getElementsByTagName(“input“);
foreach (IHTMLElement e in c)
{
if (e.outerHTML.IndexOf(“登录“) != -1)
{
iHTMLElement = e;
break;
}
}
if (iHTMLElement != null)
{
iHTMLElement.click(); // 点击登录按钮
}

更多功能可以参考 IHTMLDocument2 对象。

时间: 2024-11-09 09:42:50

c# 控制IE浏览器的相关文章

求VB或VB.NET控制chrome浏览器

问题描述 求VB或VB.NET控制chrome浏览器就是可以用chrome浏览器访问网页,控制里面代码等等-- 解决方案 解决方案二:坐等答案坐等答案解决方案三:求高手指点啊解决方案四:指点?指点什么?用它打开网址可以,关掉也可以,但是你想串改里面的代码?你想做什么呢?任何没有接口的应用程序,如果不破解源代码,能做的就是从内存入手,你认为这样的浏览器,对信息不处理?解决方案五:Quote: 引用3楼fei2yun的回复: 指点?指点什么?用它打开网址可以,关掉也可以,但是你想串改里面的代码?你想

UC正测试全球第一款语音控制手机浏览器

手机浏览器公司UC优视正在内部秘密研发和测试一款完全由语音控制的浏览器.尽管启动画面显示跟UC刚刚发布的8.2BETA版一模一样,但是打开之后会发现所有网页的输入栏都有一个麦克风标志.语音控制的浏览器根据软件的版本号显示,应该还在内部绝密测试中.Google之前已经提供了网页版的语音搜索,但是可以使用语音对功能进行控制.搜索和全局输入的浏览器,这应该是全球第一个.经过试用,UC这个研发中的语音浏览器语音识别相当准确,不仅可以控制UC浏览器的操作,比如打开书签.开启夜间模式.当前打开页面前进后退:

分享一个控制JS 浏览器缓存的解决办法。

 JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题,          一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端,          但是另一方面,当js 文件有改动的时候,如何快速的将客户端缓存的js文件都失效,这是非常头痛的问题.          以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存.            那么如何解决呢.            1. 直接禁止全部的静态文件缓存         

JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍

 浏览器全屏模式的启动函数requestFullscreen仍然需要附带各浏览器的js方言前缀,相信下面这段代码需要你花大量的搜索才能凑齐:    代码如下: // 判断各种浏览器,找到正确的方法 function launchFullscreen(element) {   if(element.requestFullscreen) {     element.requestFullscreen();   } else if(element.mozRequestFullScreen) {    

用Meta标签控制360浏览器默认极速模式打开自己的网站_相关技巧

最近开发了一个网站,大量采用了html5和css3,希望用户都以webkit内核打开页面,但是测试却发现360的以ie内核打开为推荐模式,不知原因为何.其实360给网站开发者设计了一种选择的方法,只要加入一段Meta标签代码就可以解决. 在head标签中添加一行代码: <html> <head> <meta name="renderer" content="webkit|ie-comp|ie-stand"> </head&g

CSS控制所有浏览器水平居中和控制链接不换行的效果

CSS部分 /*页尾开始*/ #footer{  clear:both;  height:auto;  background:rgb(38,88,87); } #footer *{  color:rgb(217,230,210);  text-align:center; } #footer .bottom{  height:auto;  text-align:center; } .link-ml{  text-align:center; } .link-ml,.link-m1 ul{  widt

c#控制ie浏览器的相关问题

问题描述 有一个网站,先要点击登陆,然后弹出一个登陆的小框框,这个小框框里的内容就是一个网页的内容来的,如何用C#在那个小框框里输入内容完成登陆呢? 解决方案 解决方案二:怎么没人知道的吗?

php控制页面浏览器缓存与启用gzip传送

php实例gzip传输页面  代码如下 复制代码 可以用于静态资源与html页面,修改一下也适合于其他语言 //缓存过期时间(Cache-Control, http1.1协义), 推荐使用 $secs = 0; //秒 header("Cache-Control: s-maxage=$secs, max-age=$secs, must-revalidate, proxy-revalidate"); // 缓存过期时间为24小时(Expires) $offset = 3600 * 24;

JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件_javascript技巧

HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏API,游戏呀,等都很有用.先看常见的API  element.requestFullScreen()  作用:请求某个元素element全屏 Document.getElementById("myCanvas").requestFullScreen()   这里是将其中的元素ID去请求fullscreen 退出全屏   document.cancelFullScreen() Do