获取其它进程中的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();
}
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();
}
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。( Pfan.cn )
【编程爱好者论坛】