利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素
来源:互联网 发布:淘宝网商城女装短裤 编辑:程序博客网 时间:2024/04/29 20:28
void OnLogin()
{
_variant_t v;
HRESULT hr;
VARIANT id, index;
CComPtr <IDispatch> spDispatch;
CComQIPtr <IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
CComQIPtr <IHTMLElement, &IID_IHTMLElement> pElement;
CComQIPtr <IHTMLElementCollection,&IID_IHTMLElementCollection> pElementCol;
CComPtr <IHTMLInputTextElement> pInputTextElement;
if (m_spSHWinds == NULL) {
hr = m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows));
if (FAILED(hr)){
MessageBox( "Failed ");
CoUninitialize();
}
}
if (m_spSHWinds) {
long n=0;
m_spSHWinds-> get_Count(&n); //得到浏览器的个数
//遍历每一个浏览器
for (long i = 0; i < n; i++) {
CComPtr <IDispatch> spDisp;
v = (long)i;
spDisp =m_spSHWinds-> Item(&v);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); //生成一个IE窗口的智能指针
if (spBrowser) {
//获取IHTMLDocument2接口
if (SUCCEEDED(spBrowser-> get_Document( &spDispatch)))
pDoc2 = spDispatch;
if(pDoc2!=NULL) {
//获取所有元素的集合
if(SUCCEEDED(pDoc2-> get_all(&pElementCol))){
long p=0;
if(SUCCEEDED(pElementCol-> get_length(&p))) {
if(p!=0){
//遍历所有元素
for(long i=0;i <p;i++){
V_VT(&id) = VT_I4;
V_I4(&id) = i;
V_VT(&index) = VT_I4;
V_I4(&index) = 0;
if(SUCCEEDED(pElementCol-> item(id,index, &spDispatch))) { //应该就这附近的几行错误吧
if(SUCCEEDED(spDispatch-> QueryInterface(IID_IHTMLElement,(void**)&pElement))) { //应该就这附近的几行错误吧
if(SUCCEEDED(pElement-> QueryInterface(IID_IHTMLInputTextElement,(void**)&pInputTextElement))) {
CComBSTR strName( "csdn "); //用户名
CComBSTR strPwd( "123456 "); //密码
CComBSTR type; //输入框类型
pInputTextElement-> get_type(&type);//获取输入框类型
CString strtype(type);
strtype.MakeUpper();
if (lstrcmpi(strtype, _T( "TEXT ")) == 0) {
pInputTextElement-> put_value(strName);//设置文本框的值(用户名)
}
if (lstrcmpi(strtype, _T( "PASSWORD ")) == 0) {
pInputTextElement-> put_value(strPwd);//设置文本框的值(密码)
}
}
}
}
}
}
}
}
}
}
}
}
}
- 利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素
- 利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素 还有一个是查找IE窗口里的submit按钮,模拟点击
- C++遍历所有IE浏览器,得到里面的所有元素
- C++遍历所有IE浏览器,得到里面的所有元素
- java遍历文件夹里面的所有文件
- 遍历一个布局里面所有的控件
- 删除select元素里面的所有option
- hashmap遍历所有元素
- 所有元素遍历
- java遍历Map所有的元素
- javascript 遍历页面中所有的元素
- C#遍历枚举类型的所有元素
- dom4j递归遍历XML的所有元素
- PHP的SimpleXML遍历所有子元素
- php遍历文件夹下面的所有文件,得到文件路径
- 如何得到浏览器 DOM 对象的所有属性和方法
- [BCB] 遍历界面所有元素
- JAVA遍历Map所有元素
- 科教:如果人类突然消失了,地球会怎么样?
- fastdb中的relation
- 弃用数据库自增ID,曝光一下我自己用到的解决方法之---终结篇
- MS SQL SERVER 触发器的临时内存表
- 阶乘问题
- 利用 SHDocVw::IShellWindowsPtr m_spSHWinds 遍历所有IE浏览器,得到里面的所有元素
- 画图中的弧度与角度转换(Math.atan与Math.atan2)
- 一场流水线带来的灾难
- MyEclipse Android2.2 开发环境搭建、配置(基于Windows 7操作系统、MyEclipse8.5、Android2.2)
- zs data
- 开放的图书馆呼唤开放的心灵
- 嵌入式linux通过DHCP自动获取IP地址实现获取
- 远程注入DLL实现进程隐藏以及键盘记录器
- android 进度条小例子1