用VB60编程禁止网上下载文件

2019-06-20 01:19:39 来源: 襄阳信息港

  随着计算机的普及,互联已逐渐走向千家万户、单位学校,但随之而来的问题也出现:由于上有大量的游戏软件、图片、多媒体内容等,许多民利用单位或学校的计算机,在上大量下载这类东东,不仅使流量猛增,费消耗,而且更容易使一些黄色内容肆意传播,虽然在IE浏览器中有一项可设为禁止下载, 看图ACDSee 6.0应用大全数码人像照片矢量化及艺术处理六天学会Visual Basic数据库编程解析“震荡波”恶性蠕虫病毒但只要稍懂一点计算机的人就可以再进入IE设置中修改为允许下载。本人经过研究注册表,找到了一种可禁止下载的方法,就是利用VB6编写一个小程序,通过修改注册表中的某些项目,完全禁止IE浏览器的下载功能,而且屏蔽一切修改注册表的方法。

  一、启动VB6.0,新建一工程,命名为DENYDOWN;

  二、修改注册表有两种方法:一种是建立一个扩展名为.REG的文件,双击后自动添加到注册表中(在程序中是通过WINDOWS自带的一个注册表文E把它导入注册表,达到修改注册表的目的);另一种是通过调用WINDOWS API函数,来修改注册表。两种方法各有长短,我们这里把二者结合起来,共同使用,达到对注册表的修改目的。由于我们要调用WINDOWS API函数,所以先在声明栏中声明如下的四个API函数:打开子键RegOpenKey、删除子键RegDeleteKey、关闭打开的子键RegCloseKey和刷新子键函数RegFlushKey,还有一个常数声明:HKEY_LOCAL_MACHINE,声明语名如下:

  Private Declare Function RegDeleteKey Lib "l" Alias _ "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long

  Private Declare Function RegOpenKey Lib "l" Alias _ "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As_ Long

  Private Const HKEY_LOCAL_MACHINE = H

  Private Declare Function RegCloseKey Lib "l" (ByVal hKey As Long) As_ Long

  Private Declare Function RegFlushKey Lib "l" (ByVal hKey As Long) As_ Long

  三、在Form_Load事件过程中输入以下内容,为了后面说明方便,这里给每一行加了标号,当然实际编程中是不能加标号的。

  Dim line As String

  Dim a As Long

  Dim fso, fs As Object

  line = "REGEDIT4" Chr(13) Chr(10)

  line = line Chr(13) Chr(10)

  7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34   line = line "[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet SettingsZones]" Chr(13) Chr(10)

  line = line """1803""=dword:" Chr(13) Chr(10) '禁止下载

  line = line Chr(13) Chr(10)

  line = line "[HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun]" Chr(13) Chr(10) '加入启动组

  line = line """DenyDownLoad""=""C:PROGRAM e"""

  line = line Chr(13) Chr(10)

  line = line "[HKEY_FAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem]" Chr(13) Chr(10)

  line = line """DisableRegistryTools""=dword:" Chr(13) Chr(10) '禁止修改注册表

  line = line Chr(13) Chr(10)

  line = line "[HKEY_CLASSES_ROOTregfileshellopencommand]" Chr(13) Chr(10)

  line = line "@=""e""" Chr(13) Chr(10) '修改添加注册表文件为打开注册表。

  line = line Chr(13) Chr(10)

  line = line "[HKEY_LOCAL_g]" Chr(13) Chr(10)

  line = line "@=""txtfile""" Chr(13) Chr(10) '关联注册表文件到TEXT文件。

  line = line Chr(13) Chr(10)

  line = line "[HKEY_LOCAL_f]" Chr(13) Chr(10)

  line = line "@=""txtfile""" Chr(13) Chr(10) '关联inf文件到TEXT文件

  Set fso = CreateObject("leSystemObject")

  Set fs = eateTextFile("c:g", True)

  iteline (line)

  ose

  Set fs = Nothing

  a = Shell("e /s c:g", 1)

  Kill ("c:g")

  Dim hKey, ret As Long

  ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SoftwareMicrosoftWindowsCurrentVersionInternet SettingsSODOWNLOADFILEDOWNLOAD", hKey)

  ret = RegDeleteKey(hKey, "ALLOW") '删除允许下载项

  ret = RegCloseKey(hKey)

  ret = RegFlushKey(hKey)

  代码说明:

  上面第4行到第27行是把要在注册表中修改的内容建立一个注册表文件g,由于这种文件的格式要求开头必须有"REGEDIT4"一行,并且紧跟后面要求一空行,所以有4、5两行。第6、7两行是修改注册表中关于IE设置当中的参数,当修改为3时表示禁止下载。第9、10两行是把本程序加入启动组,保证每次启动机器后都能自运行本程序,当然这里限定本程序的位置必须是“C:PROGRAM e”,如果你不想把它放在这里,就要修改这里的内容了。第12、13行是禁止用户使用注册表器来修改注册表。由于修改注册表还可以通过建立一个.REG文件,双击后加入注册表,为了防止懂得注册表知识的人通过这种方式修改注册表中关于禁止下载的项目,所以在15、16行里修改添加注册表文件为打开注册表,由于第13行设置了禁止打开注册表,所以也就不能添加注册表文件了。第18行到第22行也是出于更安全的目的分别使.REG文件和.INF文件关联到记事本,加强对注册表的保护。第24行是把上面的内容写入一个注册表文件g,第28行是通过SHELL()函数调用注册表器把g中的内容添加入注册表中。由于调用E添加注册表项时会出现一个对话框,所以加了一个/S参数禁止该对话框的显示。第31、32行是通过Windows Api函数删除注册表中关于IE设置中允许下载的项目,第33行是更新设置,第34行是关闭注册表,完成对注册表的修改。

  为了让本程序在每次修改完注册表后能自动关闭,还要加入下面的退出程序。

  Private Sub Form_GotFocus()

  Unload Me

  End Sub

  生成e,拷贝到C:PROGRAM FILESDenyDownLoad,就一切OK了。当然还需要一个恢复修改的程序,否则连我们自已也不能下载文件和修改注册表了,通过上面的程序,相信你应该可以编写一个恢复修改的程序了吧,这里我就不再赘述了。 查看本文来源

八个月宝宝便秘该怎么办
9岁儿童晚上睡觉出汗怎么办
6岁儿童晚上睡觉出汗怎么办
本文标签: