|
|
 |
VB 通过API访问 Windows 注册表 |
热 ★★★★ |
|
VB 通过API访问 Windows 注册表 |
|
作者:闵涛 文章来源:闵涛的学习笔记 点击数:863 更新时间:2009/4/23 14:58:40  |
|
|
你希望你的程序能访问 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
'关闭一个主键
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, _
ByVal lpData As Any,
_
ByVal cbData As Long _
) As Long
'创建或改变一个键值,lpData应由缺省的ByRef型改为ByVal型
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
来看看程序运行的结果:
在注册表的
HKEY_CURRENT_USER 根键中多了一个 New Registry Key 主键。其中除有一个空的“(默认)”值外,还有一个值为“I am a
winner!”的“My Value”值。 156
[VB.NET程序]GSM短信模块库函数,可以用VB,VC,调用简单实用 [系统软件]windows下Apache+php+mysql的安装与配置图解 [操作系统]在Windows中玩转Linux操作系统 [操作系统]死马还当活马医:6种方法挽救Windows系统 [办公软件]PowerPoint做交互课件之弃用VBA [办公软件]VBA获取U盘、主板、CPU序列号和网卡MAC地址 [办公软件]VBA设置文件属性及加密源代码示例 [办公软件]VBA中初始化ADO连接的几种方法 [网络安全]“VB破坏者变种N”病毒摘要 [Web开发]ASP.NET上传文件到数据库VB版
|
|
| 教程录入:mintao 责任编辑:mintao |
|
|
上一篇教程: 如何在VB中实现目录遍历 下一篇教程: 多客户环境下VB数据库编程之(9) |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| |
|
|
|
|
|
 |
同类栏目 |
 |
 |
赞助链接 |
 |
|
500 - 内部服务器错误。
|
|
|
|
|
|