⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 能够阻拦访问的浏览器.txt

📁 几个Internet网络编程的资料和源码
💻 TXT
字号:
能够阻拦访问的浏览器

大家可能对IE内的分级审查不陌生吧。所谓分级审查就是对浏览的网站加以限制,
限制其他人的使用。其实这个功能我们可以加入到我们的程序当中。他是通过在
ChtmlView类中的

事件OnBeforeNavigate2()来实现的,这个事件可以在WEB浏览器中的导航发生
之前,引起事件。在产生这个事件以后,通过判断网站的地址来加以阻拦。下面
是这个我的一段代

码,我在视类中加入了一个CbyteArray类成员变量m_addlist,来记录网址,通
过对这个数组中元素的判断来停止浏览。

#include "stdafx.h"

#include "str.h"

#include "strDoc.h"

#include "strView.h" 

#ifdef _DEBUG

#define new DEBUG_NEW 

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif 

IMPLEMENT_DYNCREATE(CStrView, CHtmlView) 

BEGIN_MESSAGE_MAP(CStrView, CHtmlView)

//{{AFX_MSG_MAP(CStrView) 

ON_COMMAND(IDD_DDE, OnDde) 

//}}AFX_MSG_MAP 

// Standard printing commands 

ON_COMMAND(ID_FILE_PRINT, CHtmlView::OnFilePrint) 

END_MESSAGE_MAP()

///////////////////////////////////////////////////////////////////////////// 

// CStrView construction/destruction

CStrView::CStrView() 

{ 

// TODO: add construction code here

} CStrView::~CStrView()

{

}

BOOL CStrView::PreCreateWindow(CREATESTRUCT& cs)

{

// TODO: Modify the Window class or styles here by modifying 

// the CREATESTRUCT cs

return CHtmlView::PreCreateWindow(cs); 

}

/////////////////////////////////////////////////////////////////////////////

// CStrView drawing

void CStrView::OnDraw(CDC* pDC) 

{ 

CStrDoc* pDoc = GetDocument(); 

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here 

}

void CStrView::OnInitialUpdate()

{

CHtmlView::OnInitialUpdate();

// TODO: This code navigates to a popular spot on the web.

// change the code to go where you'd like.

Navigate2(_T("http://263.NET"),NULL,NULL); 

}

///////////////////////////////////////////////////////////////////////////// 

// CStrView printing 

/////////////////////////////////////////////////////////////////////////////

// CStrView diagnostics

#ifdef _DEBUG 

void CStrView::AssertValid() const 

{

CHtmlView::AssertValid();

} 

void CStrView::Dump(CDumpContext& dc) const 

{

CHtmlView::Dump(dc); 

}

CStrDoc* CStrView::GetDocument()

// non-debug version is inline 

{ 

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CStrDoc)));

return (CStrDoc*)m_pDocument; 

} 

#endif//_DEBUG 

///////////////////////////////////////////////////////////////////////////// 

// CStrView message handlers 

void CStrView::OnDde() 

{

CString ddd;

ddd="http://263.net"; 

m_addlist.Add( ddd);

//加入一个地址 

} 

void CStrView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel) 

{ 

for(int i=0;i<=m_addlist.GetSize();i++) 

{

CString temp;

temp=m_addlist.GetAt(i);

if(!strnicmp(lpszURL,temp,temp.GetLength()))

//判断现在浏览的网页与数组中的是否相同,如果相同将停止浏览该网页并且
弹出一个对话框 

{ 

*pbCancel=TRUE; 

AfxMessageBox("这个网页已经被禁止浏览啦!^_^");

Stop(); break; 

}

} 

CHtmlView::OnBeforeNavigate2(lpszURL, nFlags, lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel);

} 

还可以在其中加入其他的事件,来达到你预期的效果。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -