在VB中使用注册表
用VB编程,打开一个主键时,经常用到RegOpenKey。例如,为了锁定注册表,它被写成:
私有声明函数RegOpenKey Lib "advapi32.dll "别名" RegOpen
KeyA" (ByVal hKey为Long,ByVal lpSubKey为String,phkResult为Long)为Long
......
Dim Hkey,r一样长
r=RegOpenKey(HKCU,洛克雷,香港)
........
但是,你有没有想过,如果有些用户的注册表里没有系统主键,他们就打不开这个子项,所以无法实现这个功能?解决方案是使用另一个API RegCreateKey。这个API有主键就打开,没有主键就自动创建打开。所以上面的代码应该写成
私有声明函数RegCreateKey Lib "advapi32.dll "别名" RegCreateKeyA" (ByVal hKey为Long,ByVal lpSubKey为String,phkResult为Long)为Long
......
r=RegCreateKey(HKCU,洛克雷,香港)
......
这样就不会出错了。放弃RegOpenKey,把所有使用RegOpenKey的地方都改成RegCreateKey。因为参数一样,不会错的。这样,你的软件就可以在所有用户的机器上畅通无阻地运行。(文中HKCU = HKEY _当前_用户;lock reg = Software \ Microsoft \ Windows \ current person \ Policies \ System)
位律师回复
0条评论