case DISPID_BEFORENAVIGATE2:
char *str;
// if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
// {
// CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
// varURL.ChangeType(VT_BSTR);
//转化要访问的网址为char *型
if (s1t!=1)
{
char surl[] = "http://www.csdn.net/";
CComVariant vaURL( ( CComBSTR) surl);
VARIANT vtFlags;
vtFlags.vt = VT_I4;
vtFlags.lVal = navOpenInNewWindow;
m_spWebBrowser2->Navigate2( &vaURL,&vtFlags ,
NULL,
NULL,
NULL
);
str=surl;
s1t=1;
}
// }//m_spWebBrowser2->Navigate2(&CComVariant(str1),&vtEmpty,&vtEmpty,&vtEmpty,&vtEmpty);
//如果正要访问的网址为要被拦截的,则stop
if(strstr(str,"happysky")!=NULL)
{
*pDispParams->rgvarg[0].pboolVal = TRUE;
MessageBox(NULL,"当前系统禁止浏览该页","警告",MB_ICONSTOP);
return S_OK;
}我写了个拦截网站的bho试试
然后想让dll在第一次加载的时候跳到csdn的网站
if (s1t!=1)
{
char surl[] = "http://www.csdn.net/";
CComVariant vaURL( ( CComBSTR) surl);
VARIANT vtFlags;
vtFlags.vt = VT_I4;
vtFlags.lVal = navOpenInNewWindow;
m_spWebBrowser2->Navigate2( &vaURL,&vtFlags ,
NULL,
NULL,
NULL
);
str=surl;
s1t=1;
}
这个代码可以弹出新窗口,
可是我不想弹出,而是在原本的页面跳转
但是把vtFlags.lVal = navOpenInNewWindow;注释掉
就不能打开ie了,请问这里要怎么做?
解决方案 »
- 关于C动态库库的疑问
- 写了一个C/S模式 SOCKET TCP 模式滴程序,在调试模式下正常,但是在Release模式下,一运行就出错,这是为什么呢?
- 关于文件打开问题CFile open函数的解释
- 改变其他应用的窗口形状
- 关于用CListCtrl编程运行错误的问题,急!
- 谁能提供用Iwebbrowser2做的网络浏览器的源代码?
- VS2010将LPCTSTA转化为char*是出现标识符dest错误
- 用createwindow创建了ie窗口,程序如下。但不知道怎样控制打开特定网页。
- 不装VC7,能不能用ATL7,是否只要把相关文件复制到VC6下即可?(我太穷了)
- 关于CFileDialog参数的问题
- 线程的控制函数问题
- WSARecv总是错误!
vtFlags.vt = VT_I4;
vtFlags.lVal = navOpenInNewWindow;
你这个就是让新窗口打开嘛~要在自己中打开:
char surl[] = "http://www.csdn.net/";
CComVariant vaURL( ( CComBSTR) surl);
_variant_t varTargetFrameName = _T("_self");
m_spWebBrowser2->Navigate2( &vaURL,&vtFlags ,
&varTargetFrameName ,
NULL,
NULL
);
试试,其实只要不指定navOpenInNewWindow就可以了
试试,其实只要不指定navOpenInNewWindow就可以了
没用
不指定连弹都不弹