IE编程技巧转载

来源:互联网 发布:轮状神经 知乎 编辑:程序博客网 时间:2024/05/16 09:34
IE编程技巧转载转自:csdn.net 1.实现Ctrl+C: ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 2.实现Ctrl+V: ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 3.实现查找: MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); } 4.实现显示源程序: MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); } 5.实现显示Internet选项: MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); } 6.下载事件说明: OnDownloadBegin <--开始下载 OnDownloadComplete <--下载结束 OnDocumentComplete <--页面下载完毕 对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件. 对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件. 那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗? 7.点击链接产生的事件: OnBeforeNavigate2 <--开始链接时会触发此事件 OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件) 8.包括相关文件: #include #include //这里面有很多实现IE功能的XXID,请看一看! #import