• 大小: 63KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-14
  • 语言: Html/CSS
  • 标签: 模拟点击  

资源简介

在我们编写的程序中 如果想要实现对浏览器打开的网页进行监视 模拟操纵 动态提取用户输入 动态修改 等功能 那么请你抽出宝贵的时间 继续往下阅读 本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的表单 form 并枚举出表单域的属性为目标的 对于网页中的其它元素 比如图象 连接 脚本等等 应用同样的方法都可以轻松实现 ">在我们编写的程序中 如果想要实现对浏览器打开的网页进行监视 模拟操纵 动态提取用户输入 动态修改 等功能 那么请你抽出宝贵的时间 继续往下阅读 本文介绍的知识和示例程序都是围绕如何遍历 HTML 中的表单 fo [更多]

资源截图

代码片段和文件信息

// EnumFormVal.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include “EnumFormVal.h“

#include se.h>

CComModule _Module; // 由于要使用 CComDispatchDriver ATL的智能指针,
// 所以声明它是必须的

#include  // 所有 IHTMLxxxx 的接口声明
#include 

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

using namespace std;

void EnumIE( void ); //枚举浏览器函数
void Enumframe( IHTMLDocument2 * pIHTMLDocument2 ); //枚举子框架函数
void EnumForm ( IHTMLDocument2 * pIHTMLDocument2 ); //枚举表单函数

int _tmain(int argc TCHAR* argv[] TCHAR* envp[])
{
::CoInitialize(NULL); //初始化 COM 公寓

EnumIE(); //枚举浏览器

::CoUninitialize(); //释放 COM 公寓

cout << _T(“======完成======“) << endl;
getchar(); //等待回车

return 0;
}

void EnumIE( void )
{
cout << _T(“开始扫描系统中正在运行的浏览器实例“) << endl;

CComPtr< IShellWindows > spShellWin;
HRESULT hr = spShellWin.CoCreateInstance( CLSID_ShellWindows );
if ( FAILED ( hr ) )
{
cout << _T(“获取 IShellWindows 接口错误“) << endl;
return;
}

long nCount = 0; // 取得浏览器实例个数(Explorer 和 IExplorer)
spShellWin->get_Count( &nCount );
if( 0 == nCount )
{
cout << _T(“没有在运行着的浏览器“) << endl;
return;
}

for(int i=0; i {
CComPtr< IDispatch > spDispIE;
hr=spShellWin->Item(CComVariant( (long)i ) &spDispIE );
if ( FAILED ( hr ) ) continue;

CComQIPtr< IWebBrowser2 > spBrowser = spDispIE;
if ( !spBrowser ) continue;

CComPtr < IDispatch > spDispDoc;
hr = spBrowser->get_Document( &spDispDoc );
if ( FAILED ( hr ) ) continue;

CComQIPtr< IHTMLDocument2 > spDocument2 = spDispDoc;
if ( !spDocument2 ) continue;

// 程序运行到此,已经找到了 IHTMLDocument2 的接口指针

// 删除下行语句的注释,把浏览器的背景改变看看
// spDocument2->put_bgColor( CComVariant( “green“ ) );

EnumForm( spDocument2 ); //枚举所有的表单
}
}

void Enumframe( IHTMLDocument2 * pIHTMLDocument2 )
{
if ( !pIHTMLDocument2 ) return;

HRESULT hr;

CComPtr< IHTMLframesCollection2 > spframesCollection2;
pIHTMLDocument2->get_frames( &spframesCollection2 ); //取得框架frame的集合

long nframeCount=0; //取得子框架个数
hr = spframesCollection2->get_length( &nframeCount );
if ( FAILED ( hr ) || 0 == nframeCount ) return;

for(long i=0; iameCount; i++)
{
CComVariant vDispWin2; //取得子框架的自动化接口
hr = spframesCollection2->item( &CComVariant(i) &vDispWin2 );
if ( FAILED ( hr ) ) continue;

CComQIPtr< IHTMLWindow2 > spWin2 = vDispWin2.pdispVal;
if( !spWin2 ) continue; //取得子框架的 IHTMLWindow2 接口

CComPtr < IHTMLDocument2 > spDoc2;
spWin2->get_document( &spDoc2 ); //取得字框架的 IHTMLDocument2 接口

EnumForm( spDoc2 ); //递归枚举当前子框架 IHTMLDocument2 上的表单form
}
}

void EnumForm( IHTMLDocument2 * pIHTMLDocument2 )
{
if( !pIHTMLDocument2 ) return;

Enumframe( pIHTMLDocument2 ); //

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2005-04-17 18:17  EnumFormVal

     文件        248  2005-04-15 10:48  EnumFormVal\EnumFormVal.clw

     文件       5394  2005-04-17 02:31  EnumFormVal\EnumFormVal.cpp

     文件       4264  2005-04-15 15:49  EnumFormVal\EnumFormVal.dsp

     文件        545  2005-04-15 11:41  EnumFormVal\EnumFormVal.dsw

     文件        341  2005-04-15 10:48  EnumFormVal\EnumFormVal.h

     文件      50176  2005-04-17 02:41  EnumFormVal\EnumFormVal.ncb

     文件     180736  2005-04-17 02:41  EnumFormVal\EnumFormVal.opt

     文件       1543  2005-04-17 02:35  EnumFormVal\EnumFormVal.plg

     文件       1457  2005-04-15 10:48  EnumFormVal\EnumFormVal.rc

     文件       1640  2005-04-15 10:48  EnumFormVal\ReadMe.txt

     目录          0  2005-04-17 18:17  EnumFormVal\Release

     文件      20480  2005-04-17 02:35  EnumFormVal\Release\EnumFormVal.exe

     文件        452  2005-04-15 10:48  EnumFormVal\Resource.h

     文件        298  2005-04-15 10:48  EnumFormVal\StdAfx.cpp

     文件        994  2005-04-17 02:34  EnumFormVal\StdAfx.h

----------- ---------  ---------- -----  ----

               268786                    17


评论

共有 条评论

相关资源