以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  获取其它进程中的Web Browser中的HTML源码  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=61077)


--  作者:卷积内核
--  发布时间:4/9/2008 9:52:00 AM

--  获取其它进程中的Web Browser中的HTML源码
HWND H1,H2,H3,H4,hw;
H1=H2=H3=H4=hw=NULL;
H1=::FindWindow("TForm1",NULL);
if (H1) H2=::FindWindowEx(H1,NULL,"Shell Embedding",NULL);


if (H2) H3=::FindWindowEx(H2,NULL,"Shell DocObject View",NULL);
if (H3) H4=::FindWindowEx(H3,NULL,"Internet Explorer_Server",NULL);

if (H4) hw=H4;
else
{
  AfxMessageBox("No Found the Dialog with IE!");
  return;
}

IHTMLDocument2 *pHTMLDocument=NULL;
DWORD lRes;
HRESULT hres;

UINT MSG = RegisterWindowMessage("WM_HTML_GETOBJECT");
SendMessageTimeout(hw, MSG, 0, 0, SMTO_ABORTIFHUNG, 1000, &lRes);

hres=ObjectFromLresult(lRes,__uuidof(IHTMLDocument2),0,(void**)&pHTMLDocument);

if(hres==S_OK)
{
  IPersistStreamInit *pPSI=NULL;
  IStream *pStream=NULL;
  HGLOBAL  hHTMLText;
    
  if  (FAILED(pHTMLDocument->QueryInterface(&pPSI))) return;
   
  hHTMLText = GlobalAlloc(GMEM_FIXED, 65534);
  CreateStreamOnHGlobal(hHTMLText, TRUE, &pStream);
  pPSI->Save(pStream, FALSE);

  char *pText = (char*)hHTMLText;
  FILE *f=fopen("data_from_explorer.txt","w");
  fwrite(pText,1,strlen(pText),f);
  fclose(f);
  AfxMessageBox("the source codes Saved in data_from_explorer.txt");

  pStream->Release();
  pPSI->Release();
}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
347.656ms