当前位置:编程学习 > VB >>

望高手能否告诉一下VB做IE拦截完整的DLL

IE地址拦截 比如:打打开"论坛"他就马上跳转到 www.myname.com?key="论坛" 这个功能 
看了很多贴子,有说BHO,有说VB建立工程,呵就是这段内容:

点 工程 - 引用,选择Microsoft Internet Controls
窗体上添加Timer控件,但这种只适用于微软的IE

Private Sub Form_Load()
   Me.ZOrder 1
        Timer1.Interval = 500
    Me.Hide        '窗体不可见
 App.TaskVisible = False '在应用进程中不可见
End Sub

Private Sub Timer1_Timer()
  Dim w
    Dim s As New SHDocVw.ShellWindows
    For Each w In s
        If InStr(w.LocationURL, "http://www.baidu.com") > 0 Then
            w.Navigate ("http://www.hao123.com")
        End If
    Next
End Sub


但我没能在VB6中生成并让它运行起来,或者说没能完成工程,无法使用。

我的邮箱是zhghuimin@163.com,有高手能给我详细的步骤,或者发我邮箱,谢谢了。 --------------------编程问答-------------------- BHO的思路是可行的,你按照这个找绝对能成,你找的代码不靠谱。 --------------------编程问答-------------------- 希望能用VB做出来这么 --------------------编程问答-------------------- BHO,我有VB6的源码。 --------------------编程问答-------------------- 当然,我用VB做过的,所以绝对可行。 --------------------编程问答--------------------
引用 3 楼 vansoft 的回复:
BHO,我有VB6的源码。

发给我好么或者Q我6831532 --------------------编程问答-------------------- 目前找到解决文字这个地方的代码是这样的(我想把strurl判断一下是中文就进行跳转,不知道怎么改):
STDMETHODIMP CmyBase::Invoke(DISPID dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO  *pExcepInfo,UINT *puArgErr)
{

USES_CONVERSION;
if (!pDispParams)
{
return E_INVALIDARG;
}

switch(dispIdMember)
{
case DISPID_BEFORENAVIGATE2:
{
LPOLESTR lpURL = NULL;
            m_WebBroser->get_LocationURL(&lpURL);
WCHAR * strurl;
if (pDispParams->cArgs >= 5 && pDispParams->rgvarg[5].vt == (VT_BYREF|VT_VARIANT))
{
CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
varURL.ChangeType(VT_BSTR);
strurl = OLE2W(varURL.bstrVal);
}
if (wcsstr(strurl, L"baidu.com"))
{
 wcscpy(strurl,L"http://www.qq.com");
 CString str(strurl);
 BSTR bStr=str.AllocSysString();                 
                 m_WebBroser->Navigate(bStr,NULL,NULL,NULL,NULL);

return S_OK;
}
break;
}
default:break;
}

return S_OK;
}
--------------------编程问答-------------------- 打好基础,然后找个BHO的代码修改。但BHO都有一个问题,如何安装。尤其在有360的机器上,肯定被拦截 --------------------编程问答-------------------- 这个没关系,是暂时在本地安装演示。


引用 6 楼 zhghuimin 的回复:
目前找到解决文字这个地方的代码是这样的(我想把strurl判断一下是中文就进行跳转,不知道怎么改):


C/C++ code



1234567891011121314151617181920212223242526272829303132333435363738

STDMETHODIMP CmyBase::Invoke(DISPID dispIdMember,REFIID……
--------------------编程问答-------------------- 搜索VB BHO,会有很多现成的BHO代码,然后改成你要的即可.
补充:VB ,  网络编程
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,