//--连接IE浏览器窗口的代码
// connIE.cpp : Defines the entry point for the console application. //
#include "stdafx.h"
#pragma warning(disable : 4049) #pragma warning(disable : 4146)
//#import "shdocvw.dll" exclude("tagREADYSTATE") #import "shdocvw.dll" //#import "shdocvw.dll" rename_namespace("SHELL_WINDOW") //using namespace SHELL_WINDOW; #define SHELL_WINDOW SHDocVw
#import <mshtml.tlb> // Internet Explorer 5 //#import "mshtml.dll"
#include <iostream> using namespace std;
int main(int argc, char* argv[]) { cout << "---test---" << endl; //--COM CoInitialize(NULL); do { cout << "---list all IE Window---" << endl;
SHELL_WINDOW::IShellWindowsPtr msp_SHWinds = NULL; HRESULT hr = msp_SHWinds.CreateInstance(__uuidof(SHELL_WINDOW::ShellWindows)); if (S_OK != hr || NULL == msp_SHWinds) { cout << "FAILED." << endl; break; } int count = 0; int Count = msp_SHWinds->GetCount(); for (int i = 0; i < Count; i++) { _variant_t va(long(i), VT_I4); IDispatchPtr sp_Disp; sp_Disp = msp_SHWinds->Item(va); SHELL_WINDOW::IWebBrowser2Ptr sp_Browser(sp_Disp); //SHELL_WINDOW::IWebBrowser2Ptr sp_Browser = sp_Disp;//--OK if (NULL != sp_Browser) { //cout << (char*)sp_Browser->GetLocationName() << endl; MSHTML::IHTMLDocument2Ptr spDoc(sp_Browser->GetDocument()); if (NULL != spDoc) { count ++; cout << (char*)spDoc->Gettitle() << endl; spDoc.Release(); }
sp_Browser.Release(); } } msp_SHWinds.Release();
cout << "---list count=" << count << "---" << endl; break; } while (false); //--COM //CoUninitialize();//--??? OleUninitialize(); return 0; }

|