注冊表保存了Windows中極重要的配置信息,而任何人都可以通過運行Regedit命令或雙擊某個Reg文件來改寫它,這樣做其實是很危險的 。本期介紹的編程方法,就是為防止注冊表被改寫而設(shè)計的 。
本程序有三個功能:①顯示當(dāng)前注冊表狀態(tài)(處于可改寫還是處于被保護狀態(tài));②鎖定注冊表使它不被人改寫;③解鎖注冊表使它可以隨時被改寫 。下面我們用VB6.0來實現(xiàn)它 。
一、設(shè)計窗體
首先打開VB程序,新建一個FORM1,將其Caption改為“注冊表保護程序演示”,BorderStyle設(shè)為1-Fixed Single 。放上一個Label1(其Caption改為“當(dāng)前注冊表狀態(tài):”)和一個Label2,另放上COMMAND1,其Caption改為“禁止使用注冊表”,再放上COMMAND2,其Caption改為“允許使用注冊表”,COMMAND3的Caption改為“退出程序” 。
二、編程思路
程序運行時首先檢查注冊表,看當(dāng)前注冊表的狀態(tài)是處于被保護狀態(tài)還是鎖定狀態(tài),并返回信息到Label2 。如已保護則COMMAND1不可用,如無保護則COMMAND2不可用,且建一個全局的BAS文件,其中包含所有訪問注冊表時要用的常數(shù)及函數(shù)程序,方便主FORM1可以隨時調(diào)用 。下面給出主程序的和全局BAS文件的核心代碼 。
三、核心代碼
Private Sub Form_Load() //打開窗口
Dim ret As Integer
Move (Screen.Width - W-idth)2, (Screen.Height - Height)2 //居中顯示
ret = GetDWORDValue(”SoftwareMicrosoftWindowsCur rentVersionPoliciesSystem”, “DisableRegistryTools”) //調(diào)用全局函數(shù),在后面有全部的代碼
//判斷當(dāng)前注冊表處于何種狀態(tài)
If ret = 1 Then //返回值為1說明已經(jīng)禁用注冊表
Label2.Caption = “你的注冊表處于安全被保護的狀態(tài)”
Command1.Enabled = False
Else //返回除1以外的任何值都說明注冊表沒有受到保護
Label2.Caption = “你的注冊表處于隨時被改寫的狀態(tài)”
Command2.Enabled = False
End If
End Sub
———————————-
Private Sub Command1_Click() //禁用注冊表
//寫DWORD值的值項”DWORD Value”,值為”1″
SetDWORDValue “SoftwareMicrosoftWindowsCur rentVersionPoliciesSystem”, “DisableRegistryTools”, “00000001″
//把DisableRegistryTools這個鍵值設(shè)置為1,如果沒有這個鍵就自動新建一個 。
MsgBox “寫入成功”
Command1.Enabled = False
Command2.Enabled = True
Label2.Caption = “你的注冊表處于安全被保護的狀態(tài)”
End Sub
————————-
Private Sub Command2_Click()//可用注冊表
//寫DWORD值的值項”DWORD Value”,值為”0″
SetDWORDValue “SoftwareMicrosoftWindowsCur rentVersionPoliciesSystem”, “DisableRegistryTools”, “00000000″
MsgBox “寫入成功”
Command2.Enabled = False
Command1.Enabled = True
Label2.Caption = “你的注冊表處于隨時被改寫的狀態(tài)”
End Sub
————————
Private Sub Command3_Click()//退出程序
Unload Me
End Sub
FORM1中的程序代碼之所以看起來非常簡潔,是因為它們調(diào)用了一個全局的BAS文件中的函數(shù)操作注冊表,全局的BAS文件的代碼由于太多,可以到網(wǎng)站下載,下載地址:
http://www.cpcw.com/xz/bas.rar
四、說明
在BAS文件的通用中有Public Const HKEY_CURRENT_USER = &H80000001,這是表明注冊表中HKEY_CURRENT_USER這個主鍵的調(diào)用值,如果你使用其他主鍵寫程序時,相應(yīng)的常數(shù)值分別為:
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = https://www.rkxy.com.cn/dnjc/&H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = https://www.rkxy.com.cn/dnjc/&H80000006
注:以上程序在Windows XP SP2及VB6.0下編寫及調(diào)試成功 。
推薦閱讀
- 我刷的小X的一些流行DIY版本
- Windows Vista注冊表修改
- 什么是智能產(chǎn)品
- 半入耳和全入耳的區(qū)別
- 根尖的結(jié)構(gòu)從上到下依次是什么
- 阿膠糕的制作方法配方
- 荷爾蒙是什么 什么是荷爾蒙
- 冰糖是什么做的 冰糖的保質(zhì)期最長是什么
- 單位矩陣的秩是多少
- 對音樂的美稱
