说一个最粗糙的方法:
不断的扫描整个系统中的窗口句柄(FindWindow就行了),发现IE的窗口之后,取它的Address的内容(FindWindow,GetWindowText),然后根据保存的非法网页字典相比较,符合规则的做相应的处理就行了。这个方法很容易实现,但是效果肯定不好。
不断的扫描整个系统中的窗口句柄(FindWindow就行了),发现IE的窗口之后,取它的Address的内容(FindWindow,GetWindowText),然后根据保存的非法网页字典相比较,符合规则的做相应的处理就行了。这个方法很容易实现,但是效果肯定不好。
以下是檢測access俵中的字段
OleDbConnection oleDbConnection1=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Environment.CurrentDirectory+"\\CustSMS.mdb");
oleDbConnection1.Open();
object[] oa={null, null, "Customer", "終止"};
DataTable schemaTable = oleDbConnection1.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Columns, oa);
MessageBox.Show((schemaTable.Rows.Count ==0? "不存在": "存在"));
oleDbConnection1.Close();
访问的时候IE会提示的
需要引用SHDocVw命名空间这是浏览器自带的类库
public static void LimitIE()
{
foreach(SHDocVw.InternetExplorer ie in new SHDocVw.ShellWindowsClass())
{
ie.BeforeNavigate2 +=new DWebBrowserEvents2_BeforeNavigate2EventHandler(ie_BeforeNavigate2);
if(ie.LocationURL.IndexOf("sina")>=0)
//可以考虑使用正则表达式
{
MessageBox.Show("此网站不允许访问");
ie.GoHome();
//ie.quit对基于ie核心的浏览器会出现异常
}
}
}
具体实现的话,可以使用一个timer来进行监视,希望这对你有所帮助
object o = Type.Missing;
ie.Navigate("about:blank",ref o,ref o,ref o,ref o);
真的已经实现了那个功能了!!!!太激动了,谢谢!!
还有个问题就是ie.BeforeNavigate2 +=new DWebBrowserEvents2_BeforeNavigate2EventHandler(ie_BeforeNavigate2);
这个函数指针指向的那个ie_BeforeNavigate2该怎么写啊还有,有没有一个好点的办法不要TIMER驱动的啊??谢谢了!!!
那个文件在哪里啊??
谢谢