private void button4_Click(object sender, EventArgs e)
{
IntPtr ParenthWndldsl = new IntPtr(0);
IntPtr EdithWnd = new IntPtr(0);
Thread.Sleep(200);
ParenthWndldsl = FindWindow(null, "电话服务平台1.01 - [欢迎使用]");
if (!ParenthWndldsl.Equals(IntPtr.Zero))
{
//得到User Name这个子窗体,并设置其内容
EdithWnd = FindWindowEx(ParenthWndldsl, IntPtr.Zero, "MDIClient", "");
IntPtr e1 = FindWindowEx(EdithWnd, IntPtr.Zero, "TForm_welcome", "欢迎使用");
IntPtr e2 = FindWindowEx(e1, IntPtr.Zero, "Shell Embedding", "");
IntPtr e3 = FindWindowEx(e2, IntPtr.Zero, "Shell DocObject View", "");
IntPtr e4 = FindWindowEx(e3, IntPtr.Zero, "Internet Explorer_Server", "");
mshtml.IHTMLDocument2 id = getIEWindowDocument(int.Parse(e4.ToString()));//上边代码是获得句柄的
IHTMLElementCollection links = id.links;
foreach (mshtml.IHTMLElement k in links)
{
// mshtml.HTMLAnchorElementClass ks = k.GetType();
// string aa = ((mshtml.HTMLAnchorElementClass)(k)).href;
string aaa = k.outerHTML;//这个是指定单击
if (aaa=="<AREA title=电话受理 href="+"\"$dhsl\""+" shape=rect coords=188,137,251,210>")
{
k.click();
}
//mshtml.HTMLAnchorElementClass ks = (mshtml.HTMLAnchorElementClass)(k);
}
}
}
class Win32API
{
[DllImport("User32.dll")] //User32.dll是Windows操作系统的核心动态库之一
public static extern int FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32", EntryPoint = "RegisterWindowMessage")]
public static extern int RegisterWindowMessage(
string lpString
);
[DllImport("user32", EntryPoint = "SendMessage")]
public static extern int SendMessage(
int hwnd,
int wMsg,
int wParam,
ref int lParam
);
[DllImport("OLEACC.DLL", EntryPoint = "ObjectFromLresult")]
public static extern int ObjectFromLresult(
int lResult,
ref System.Guid riid,
int wParam,
[System.Runtime.InteropServices.MarshalAs(UnmanagedType.Interface), System.Runtime.InteropServices.In, System.Runtime.InteropServices.Out]ref System.Object ppvObject
//注意这个函数ObjectFromLresult的声明.
);
}
public mshtml.IHTMLDocument2 getIEWindowDocument(int jubing)
{
System.Object domObject = new System.Object();
int tempInt = 0;
System.Guid guidIEDocument2 = new Guid(); //应该是IHTMLDocument2的接口id
int WM_Html_GETOBJECT = Win32API.RegisterWindowMessage("WM_Html_GETOBJECT");
//开始查找指定的ie窗体
int hwnd = jubing;
int W = Win32API.SendMessage(hwnd, WM_Html_GETOBJECT, 0, ref tempInt);
int lreturn = Win32API.ObjectFromLresult(W, ref guidIEDocument2, 0, ref domObject);
mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)domObject;
//MessageBox.Show(doc.toString());
MessageBox.Show("到这里2");
MessageBox.Show(doc.url);
MessageBox.Show(doc.title);
return doc;
}
分享到:
相关推荐
通过窗口句柄获得IWebBrowser2和IHTMLDocument2接口,里面是源代码,分享给大家
IHTMLDocument2问题代码
之前为这个头疼好久... 没办法获取showModalDialog对话框中网页的内容... ...然后传入IHTMLDocument2对象的引用。源代码在此供大家参考 环境:VC++ 2008 注: GCC不可编译。原因:mshtml.h文件编译错误
用WPF写的一个小程序,以网易Yeah邮箱为例,利用IHTMLDocument2类实现用户名和密码自动提交以登陆邮箱。 注:需要引用引入Microsoft.mshtml.dll链接库 地址是C:\Program Files\Microsoft.NET\Primary Interop ...
IHTMLDocument3HookSrc.rar IHTMLDocument3HookSrc.rar IHTMLDocument3HookSrc.rar
C#_WebBrowser_网页操作 1.获取frame的源文件 ...3.获取frame的IHTMLDocument2接口 4.取得frame中被点击的连接 C# 通过webBrowser 框架网页 C#:webBrowser1控件通过TagName,Name查找元素(没有ID时)
本程序演示如何通过窗口句柄取webbrowser控件的IHtmlDocument2接口
1、获取IWebBrowser(ActiveX 插件) 初始化对象接口 2、根据1中的初始化接口, 获取组件的 IID_IHTMLDocument2 对象 接口
Python操作IHTMLDocument2用于自动化测试软件测试有些软件的界面采用Win32窗口嵌套一个IE控件,用Spy++只能识别出一个InternetExplorer_Server控件。常用的几个API函数无法取到IE控件里面的内容,更无法对里面的控件...
DOM开发,用VC6获取网页WEBBROWSER2,IHTMLDOCUMENT元素
在IE8与IE6的编程方法不一样,在网上找了很长时间,都找不到IE8怎么编程,在IE8中,如果用IE6的方法得到的IHtmlDocument是无效的,不能操作,得使用另一种方法来编程,请看例子吧,例子为本人在工作中总结出来的,像IE8中的...
通过IHTMLDOCUMENT2接口,对网页中表单进行自动填写..
IHTMLDocument2 pDoc2 = (IHTMLDocument2)pObj; IHTMLWindow2 win2 = (IHTMLWindow2)pDoc2.parentWindow; win2.execScript(code, "javascript"); } [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"), ...
BHO开发的一个小例子,文档对象事件响应,例如响应IHtmlDocument 的Onclick事件等,帮助新手入门。
CHtmlView填充表单和模拟单击事件 怎样利用CHtmlview和IHtmlDocument2填充表单和模拟登录 详细见博客 http://blog.csdn.net/whucv/article/details/7848858
创建运行时的IHTMLDocument而不在WebBrowser内 HOOK Webbrowser 替换WebBrowser的窗口过程 Microsoft.XMLHttp的属性和方法的简介及使用 ------------------------ IE相关的 清空IE缓存 单独删除某一URL的缓存 ...
Doc:=wb1.Document as IHTMLDocument2; //wb1.OleObject.document.getElementsByTagName('input').item(7).click; group:=(Doc.all.item('dict_main',varEmpty) as IHTMLElement2).getElementsByTagName('div');
Delphi WebBrowser 将一段HTML文字显示在网页浏览器中,实际是创建了一... HTMLDocument := WebBrowser1.Document as IHTMLDocument2; HTMLDocument.Write(PSafeArray(TVarData(vv).VArray)); HTMLDocument.Close;
这个例子就是查询任何可执行文件的版本信息并且 C++builder 和 VC 都通用,只需要把 AnsiString 替换成 CString 就行了。 gh0st v3.6 源码 - 可下断点调试! GMem 内存管理单元源码。GMem.cpp和GMem.h是内存管理...