天极IT资讯短信服务 电脑小技巧 | 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。 | | 随着计算机的普及,互联网已逐渐走向千家万户、单位学校,但随之而来的问题也出现:由于网上有大量的游戏软件、图片、多媒体内容等,许多网民利用单位或学校的计算机,在网上大量下载这类东东,不仅使流量猛增,网费消耗,而且更容易使一些黄色内容肆意传播,虽然在IE浏览器中有一项可设为禁止下载, | 看图之王ACDSee 6.0应用大全 | | 数码人像照片矢量化及艺术处理 | 六天学会Visual Basic数据库编程 | 解析“震荡波”恶性蠕虫病毒 | 但只要稍懂一点计算机的人就可以再进入IE设置中修改为允许下载。本人经过研究注册表,找到了一种可禁止下载的方法,就是利用VB6编写一个小程序,通过修改注册表中的某些项目,完全禁止IE浏览器的下载功能,而且屏蔽一切修改注册表的方法。
一、启动VB6.0,新建一工程,命名为DENYDOWN;
二、修改注册表有两种方法:一种是建立一个扩展名为.REG的文件,双击后自动添加到注册表中(在程序中是通过WINDOWS自带的一个注册表编辑文REGEDIT.EXE把它导入注册表,达到修改注册表的目的);另一种是通过调用WINDOWS
API函数,来修改注册表。两种方法各有长短,我们这里把二者结合起来,共同使用,达到对注册表的修改目的。由于我们要调用WINDOWS API函数,所以先在声明栏中声明如下的四个API函数:打开子键RegOpenKey、删除子键RegDeleteKey、关闭打开的子键RegCloseKey和刷新子键函数RegFlushKey,还有一个常数声明:HKEY_LOCAL_MACHINE,声明语名如下:
Private
Declare Function RegDeleteKey Lib "advapi32.dll" Alias _ "RegDeleteKeyA"
(ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare
Function RegOpenKey Lib "advapi32.dll" Alias _ "RegOpenKeyA"
(ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As_ Long
Private
Const HKEY_LOCAL_MACHINE = &H80000002
Private Declare Function RegCloseKey
Lib "advapi32.dll" (ByVal hKey As Long) As_ Long Private Declare
Function RegFlushKey Lib "advapi32.dll" (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_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3]"
& Chr(13) & Chr(10) line = line & """1803""=dword:00000003"
& Chr(13) & Chr(10) '禁止下载 line = line & Chr(13) & Chr(10) line
= line & "[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]"
& Chr(13) & Chr(10) '加入启动组 line = line & """DenyDownLoad""=""C:\\PROGRAM
FILES\\DenyDownLoad\\DenyDown.exe""" line = line & Chr(13)
& Chr(10) line = line & "[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Policies\System]"
& Chr(13) & Chr(10) line = line & """DisableRegistryTools""=dword:00000001"
& Chr(13) & Chr(10) '禁止修改注册表 line = line & Chr(13) & Chr(10) line
= line & "[HKEY_CLASSES_ROOT\regfile\shell\open\command]" &
Chr(13) & Chr(10) line = line & "@=""regedit.exe"""
& Chr(13) & Chr(10) '修改添加注册表文件为打开注册表。 line = line & Chr(13) &
Chr(10) line = line & "[HKEY_LOCAL_MACHINE\Software\CLASSES\.reg]"
& Chr(13) & Chr(10) line = line & "@=""txtfile"""
& Chr(13) & Chr(10) '关联注册表文件到TEXT文件。 line = line & Chr(13) &
Chr(10) line = line & "[HKEY_LOCAL_MACHINE\Software\CLASSES\.inf]"
& Chr(13) & Chr(10) line = line & "@=""txtfile"""
& Chr(13) & Chr(10) '关联inf文件到TEXT文件 Set fso = CreateObject("Scripting.FileSystemObject") Set
fs = fso.CreateTextFile("c:\ModiReg.reg", True) fs.writeline (line) fs.Close Set
fs = Nothing a = Shell("regedit.exe /s c:\ModiReg.reg", 1) Kill
("c:\ModiReg.reg") Dim hKey, ret As Long ret = RegOpenKey(HKEY_LOCAL_MACHINE,
"Software\Microsoft\Windows\CurrentVersion\Internet Settings\SO\DOWNLOAD\FILEDOWNLOAD",
hKey) ret = RegDeleteKey(hKey, "ALLOW") '删除允许下载项 ret = RegCloseKey(hKey) ret
= RegFlushKey(hKey) |
代码说明:
上面第4行到第27行是把要在注册表中修改的内容建立一个注册表文件ModiReg.reg,由于这种文件的格式要求开头必须有"REGEDIT4"一行,并且紧跟后面要求一空行,所以有4、5两行。第6、7两行是修改注册表中关于IE设置当中的参数,当修改为3时表示禁止下载。第9、10两行是把本程序加入启动组,保证每次启动机器后都能自运行本程序,当然这里限定本程序的位置必须是“C:\PROGRAM
FILES\DenyDownLoad\DenyDown.exe”,如果你不想把它放在这里,就要修改这里的内容了。第12、13行是禁止用户使用注册表编辑器来修改注册表。由于修改注册表还可以通过建立一个.REG文件,双击后加入注册表,为了防止懂得注册表知识的人通过这种方式修改注册表中关于禁止下载的项目,所以在15、16行里修改添加注册表文件为打开注册表,由于第13行设置了禁止打开注册表,所以也就不能添加注册表文件了。第18行到第22行也是出于更安全的目的分别使.REG文件和.INF文件关联到记事本,加强对注册表的保护。第24行是把上面的内容写入一个注册表文件ModiReg.reg,第28行是通过SHELL()函数调用注册表编辑器把ModiReg.reg中的内容添加入注册表中。由于调用REGEDIT.EXE添加注册表项时会出现一个对话框,所以加了一个/S参数禁止该对话框的显示。第31、32行是通过Windows
Api函数删除注册表中关于IE设置中允许下载的项目,第33行是更新设置,第34行是关闭注册表,完成对注册表的修改。 为了让本程序在每次修改完注册表后能自动关闭,还要加入下面的退出程序。
Private
Sub Form_GotFocus() Unload Me End Sub |
生成DenyDown.exe,拷贝到C:\PROGRAM
FILES\DenyDownLoad\,就一切OK了。当然还需要一个恢复修改的程序,否则连我们自已也不能下载文件和修改注册表了,通过上面的程序,相信你应该可以编写一个恢复修改的程序了吧,这里我就不再赘述了。
|