熱點推薦:
您现在的位置: 電腦知識網 >> 軟件專區 >> 正文

注冊表加鎖的方法

2022-06-13   來源: 軟件專區 

  注冊表保存了Windows中極重要的配置信息,而任何人都可以通過運行Regedit命令或雙擊某個Reg文件來改寫它,這樣做其實是很危險的。本期介紹的編程方法,就是為防止注冊表被改寫而設計的。www.sq120.com推薦文章

  本程序有三個功能:①顯示當前注冊表狀態(處於可改寫還是處於被保護狀態);②鎖定注冊表使它不被人改寫;③解鎖注冊表使它可以隨時被改寫。下面我們用VB6.0來實現它。
一、設計窗體
  首先打開VB程序,新建一個FORM1,將其Caption改為“注冊表保護程序演示”,BorderStyle設為1-Fixed Single。放上一個Label1(其Caption改為“當前注冊表狀態:”)和一個Label2,另放上COMMAND1,其Caption改為“禁止使用注冊表”,再放上COMMAND2,其Caption改為“允許使用注冊表”,COMMAND3的Caption改為“退出程序”。
 
二、編程思路
  程序運行時首先檢查注冊表,看當前注冊表的狀態是處於被保護狀態還是鎖定狀態,並返回信息到Label2。如已保護則COMMAND1不可用,如無保護則COMMAND2不可用,且建一個全局的BAS文件,其中包含所有訪問注冊表時要用的常數及函數程序,方便主FORM1可以隨時調用。tw.WInGwiT.COM下面給出主程序的和全局BAS文件的核心代碼。
三、核心代碼
  Private Sub Form_Load() //打開窗口
  Dim ret As Integer
  Move (Screen.Width - W-idth) \ 2, (Screen.Height - Height) \ 2 //居中顯示
  ret = GetDWORDValue("Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools") //調用全局函數,在後面有全部的代碼
  //判斷當前注冊表處於何種狀態
  If ret = 1 Then //返回值為1說明已經禁用注冊表
  Label2.Caption = "你的注冊表處於安全被保護的狀態"
  Command1.Enabled = False
  Else //返回除1以外的任何值都說明注冊表沒有受到保護
  Label2.Caption = "你的注冊表處於隨時被改寫的狀態"
  Command2.Enabled = False
  End If
  End Sub
  ----------------------------------
  Private Sub Command1_Click() //禁用注冊表
  //寫DWORD值的值項"DWORD Value",值為"1"
  SetDWORDValue "Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools", "00000001"
  //把DisableRegistryTools這個鍵值設置為1,如果沒有這個鍵就自動新建一個。
  MsgBox "寫入成功"
  Command1.Enabled = False
  Command2.Enabled = True
  Label2.Caption = "你的注冊表處於安全被保護的狀態"
  End Sub
  -------------------------
  Private Sub Command2_Click()//可用注冊表
  //寫DWORD值的值項"DWORD Value",值為"0"
  SetDWORDValue "Software\Microsoft\Windows\Cur rentVersion\Policies\System", "DisableRegistryTools", "00000000"
  MsgBox "寫入成功"
  Command2.Enabled = False
  Command1.Enabled = True
  Label2.Caption = "你的注冊表處於隨時被改寫的狀態"
  End Sub
  ------------------------
  Private Sub Command3_Click()//退出程序
  Unload Me
  End Sub
  FORM1中的程序代碼之所以看起來非常簡潔,是因為它們調用了一個全局的BAS文件中的函數操作注冊表,全局的BAS文件的代碼由於太多,可以到網站下載,下載地址:
  http://www.cpcw.com/xz/bas.rar
四、說明
  在BAS文件的通用中有Public Const HKEY_CURRENT_USER = &H80000001,這是表明注冊表中HKEY_CURRENT_USER這個主鍵的調用值,如果你使用其他主鍵寫程序時,相應的常數值分別為:
  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 = &H80000004
  Public Const HKEY_CURRENT_CONFIG = &H80000005
  Public Const HKEY_DYN_DATA = &H80000006
  注:以上程序在Windows XP SP2及VB6.0下編寫及調試成功。

 
From:http://tw.wingwit.com/Article/Software/201309/338.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.