用VB6.0编程禁止网上下载文件
2008-04-09 04:44:37来源:互联网 阅读 ()
一、启动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行是关闭注册表,完成对注册表的修改。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:VB6.0应用程序界面设计探讨
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash