vc++如何得知IE被启动了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++如何得知IE被启动了?相关的知识,希望对你有一定的参考价值。

参考技术A 在vc中 用 FindWindow()查找ie 可以通过窗口名称 和类目
不知道的话k 需要用黑客软件 反编译 ie 查看它的窗口··
如果查找记事本的话 第一个参数是 “NotePad.exe”,不知道找ie用“iexplore.exe” 行不 你可以试试。
通过FindWindow 返回的句柄 就可以知道 是不是有ie 启动了
参考技术B if(FindWindow("IEFrame",NULL))

MessageBox(0,"IE已经被启动了","提示",0);


或者 EnumWindows 枚举进程(全路径)然后取IE的路径相吻合 也都行!本回答被提问者采纳
参考技术C 看不懂,你的意思是用VC++编程查出IE被启动,还是IE加载VC++程序时,想被你发现。
两种我都不懂,进来加两分。

vc++,使用IWebBrowser2组件打开网页时,怎么得知网页打开是不是完毕?怎么主动停止打开网页?

如题
IWebBrowser2::Stop())我看明白了
IWebBrowser2::get_ReadyState是什么意思啊?看不懂啊!

1)READYSTATE r;
HRESULT hr = IWebBrowser2::get_ReadyState(&r);
if (SUCCEEDED(hr) && r == READYSTATE_COMPLETE)
...


2)if (SUCCEEDED(IWebBrowser2::Stop())
...


-------------------------
Navigate2后,可以查询组建状态,查询所使用的方法就是get_ReadyState。
如果READYSTATE等于READYSTATE_COMPLETE,就说明Navigate2所请求的数据已经DOWNLOAD完成了。

另外,还有个可以实时监控网页是否打开完毕的方法,准确说是IWebBrowser2的触发事件,原型:

BEGIN_EVENTSINK_MAP(MainDlg, CDialog)
ON_EVENT(MainDlg, IDC_EXPLORER1, 259, MainDlg::DocumentCompleteExplorer1, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()

void MainDlg::DocumentCompleteExplorer1(LPDISPATCH pDisp, VARIANT* URL)

//捕捉到网页完全下载/打开成功事件


由于我觉得楼主似乎对COM不太熟悉,因此该方法的实现原理也就不多说了。以上原型是针对ActiveX控件的,通过向导会自动添加该方法的映射,因此先建一个对话框,然后利用向导自动生成的该映射代码添加至含有对应IWebBrowser2的包装类所在的类代码中,如CXXXView,CXXXDoc类中。
参考技术A 看MSDN文档吧~
http://msdn.microsoft.com/zh-cn/library/aa752127(en-us,VS.85).aspx

以上是关于vc++如何得知IE被启动了?的主要内容,如果未能解决你的问题,请参考以下文章

vc++2005到2015都安装了,为啥还提示确实运行库

IE中BHO插件被修改...该如何解决

VC++如何实现 弹出窗口,然后等窗口关闭后再执行剩下的代码?

VC/MFC如何添加启动界面

如何解除浏览器的阻止功能

如何检测 VC++ 2008 可再发行组件?