VB中删除注册表键值(API)

Eddy 发布于2011-3-10 17:53:51 分类: 程序设计 已浏览loading 网友评论0条 我要评论

删除注册表中键值:

Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpvalueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpvalueName As String) As Long

Private Const REG_SZ = 1

Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const HKEY_CURRENT_CONFIG = &H80000005


Private Sub Command1_Click()
    Dim txt As String, ret As Long, hKey As Long
    ret = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", hKey)  '路径
    If ret = 0 Then
        txt = "123"
        ret = RegSetValueEx(hKey, "name", 0, REG_SZ, ByVal txt, LenB(txt))
        RegCloseKey hKey
    End If
End Sub


Private Sub Command2_Click()
    Dim hKey As Long, ret As Long
    ret = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", hKey)
    ret = RegDeleteValue(hKey, "name")
    RegCloseKey hKey
End Sub

再附一个读取ini文件的类,代码Copy自VBGood。

Option Explicit

Private Const c_sClassStart As String = "["
Private msFileName As String
Private msSeperator As String
Private msLineComment As String * 1
Public Event DetectItem(sClass As String, sItem As String, sValue As String)

Private Sub Class_Initialize()
  Init App.Path & "\Settings.ini", "=", "#"
End Sub

Public Sub Init(sFileName As String, sSeperator As String, sLineComment As String)
  msFileName = sFileName
  msSeperator = sSeperator
  msLineComment = sLineComment
  Debug.Assert Len(sLineComment) = 1 And sLineComment <> c_sClassStart
End Sub

Public Sub StartParse()
  Dim fn As Integer
  Dim sLine As String
  Dim sCurrClass As String
  Dim sItem As String
  Dim sValue As String
 
  fn = FreeFile
  Open msFileName For Input As #fn
  Do While Not EOF(fn)
    Line Input #fn, sLine
    sLine = Trim$(sLine)
    If Left$(sLine, 1) = c_sClassStart Then
      sCurrClass = Mid$(sLine, 2, Len(sLine) - 2)
    ElseIf Left$(sLine, 1) <> msLineComment And sLine <> "" Then
      sItem = RTrim$(Split(sLine, msSeperator)(0))
      sValue = LTrim$(Split(sLine, msSeperator)(1))
      RaiseEvent DetectItem(sCurrClass, sItem, sValue)
    End If
  Loop
  Close #fn
End Sub

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/program/735.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言