c#根据ie标题关掉对应的ie子窗口
最近碰到一个需求,需要根据ie标题关掉对应的ie窗口,之前参考用过vba script不太好使,
就换成用c#调用window api和ie进程通信中
首先在winform项目里添加SHDocVw.dll文件
c:\windows\system32\SHDocVw.dll
然后添加以下代码即可根据ie标题关掉指定ie窗口
private void Form1_Load(object sender, EventArgs e)
{
/* 获得所有ie进程。因为windows下资源窗口使用ie内核,所以不光是我们通常指的web浏览器,它还包括你打开我的电脑这样的窗口 */
SHDocVw.ShellWindows sws = new SHDocVw.ShellWindows();
/*遍历ie进程*/
foreach (SHDocVw.InternetExplorer iw in sws)
{
/* 如果使用的窗口中正打开的是我的aaa.html
*/
string ieTitle = "test";
if (ieTitle.Equals(iw.LocationName))
{
//关闭当前子窗口进程
iw.ExecWB(OLECMDID.OLECMDID_CLOSE, OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER);
}
}
}