学习VB中

我现所知的VB写入注册表信息的三种方法总结如下:
1,通过VB自身带的写入注册表函数SaveSetting(appname,section,key[,value)和GetSetting(appname,section,key[,default])还有DeleteSetting(apppname)三个函数来完成,这三个函数很简单,参数分别对应:应用程序名,区段,键,值,至于什么是程序名呀区段呀,只不过是注册表的组织形式,就像文件夹里的文件件的。。,就是这样呵呵。。来个例子吧!
Private Sub Command1_Click()
SaveSetting "蚯蚓", "小蚯蚓", "top", Form1.Top
SaveSetting "蚯蚓", "小蚯蚓", "Left", Form1.Left
SaveSetting "蚯蚓", "小蚯蚓", "Width", Form1.Width
SaveSetting "蚯蚓", "小蚯蚓", "Height", Form1.Height
End Sub
这个一执行,注册表里的HKEY_CURRENT_USER/Software/VB/VBAndVBAProgramSettings下呢就这出现蚯蚓,点开蚯蚓,就出现小蚯蚓,然后就记录着四个值,用来记录当前窗体位置,这时候,注册表就好像是一个文件,它记录下了一些信息,下次我们运行程序的时候再用GetSetting把它调出来,另外在卸载软件时还要把它DeleteSetting。很简单,,但是很遗憾,它只能存在HKEY_CURRENT_USER/Software/VBAndVBAProgramSettings下。

2,要想任意的操纵注册表,当然非API不可了,借用一下别人的例程
你希望你的程序能访问 Windows 注册表吗?当然,能访问庞大的 Windows 注册表是每个程序设计者都希望的事情,那么我就告诉你如何通过API函数访问 Windows 注册表吧。请先看看下面的 Visual Basic 程序:

  '根键常数
  Const HKEY_CLASSES_ROOT = -2147483648#
  Const HKEY_CURRENT_USER = -2147483647#
  Const HKEY_LOCAL_MACHINE = -2147483646#
  Const HKEY_USERS = -2147483645#

  '键值类型
  Const REG_SZ = 1& '字符串值
  Const REG_BINARY = 3& '二进制值
  Const REG_DWORD = 4& 'DWORD 值

  '声明有关API函数
  Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
    ( _
     ByVal hKey As Long, _
     ByVal lpSubKey As String, _
     ByRef phkResult As Long _
     ) As Long '建立一个新的主键

  Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
    ( _
     ByVal hKey As Long, _
     ByVal lpSubKey As String, _
     ByRef phkResult As Long _
    ) As Long '打开一个主键

  Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
   ( _
    ByVal hKey As Long, _
    ByVal lpSubKey As String _
   ) As Long '删除一个主键

  Private Declare Function RegCloseKey Lib "advapi32.dll" _
   ( _
    ByVal hKey As Long _
   ) As Long '关闭一个主键

  Public Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long'

  Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
   ( _
    ByVal hKey As Long, _
    ByVal lpValueName As String, _
    ByVal lpReserved As Long, _
    ByRef lpType As Long, _
    ByVal lpData As Any, _
    ByRef lpcbData As Long _
   ) As Long '查询一个键值,lpData应由缺省的ByRef型改为ByVal型

  Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
   ( _
    ByVal hKey As Long, _
    ByVal lpValueName As String _
    ) As Long '删除一个键值

  '主过程
  Sub Main()
   Dim nKeyHandle As Long, nValueType As Long, nLength As Long
   Dim sValue As String
   sValue = "I am a winner!"
   Call RegCreateKey(HKEY_CURRENT_USER, "New Registry Key", nKeyHandle)
   Call RegSetValueEx(nKeyHandle, "My Value", 0, REG_SZ, sValue, 255)
   sValue = Space(255)
   nLength = 255
   Call RegQueryValueEx(nKeyHandle, "My Value", 0, nValueType, sValue, nLength)
   MsgBox sValue
   Call RegDeleteValue(nKeyHandle, "My Value")
   Call RegDeleteKey(HKEY_CURRENT_USER, "New Registry Key")
   Call RegCloseKey(nKeyHandle)
  End Sub
真是不好意思,这个例程可能是V5滴,不过用法都齐了只是其中的API声明有点出入,反正API调用就是用到时再查杳拷拷。OK
3,两斧头砍完了,第三斧头就是使用wscript用windows的脚本语言来完成注册表编辑,
首先引用Windows Script Host Object Model
定义个对象:Set Reg=CreateObject("wscript.shell")
然后调用方法写写写       Reg.RegWrite ("要写入的值的名称", "值"   .RegRead 读键值)
例子:myrun = Reg.RegWrite("HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/cdplayer", "C:/WINNT/system32/cdplayer.exe", "REG_SZ")

删除                             Reg.RegDelete ("要写入的值的名称") 
例子:mynorun = Reg.RegDelete("HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/cdplayer")

读取                             Reg.RegRead ("要写入的值的名称")
例子:Reg.RegRead("HKLM/SOFTWARE/Rising/Rav/NetID")
好了,好了,要熄灯了先写到这儿了 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值