分享
 
 
 

用注册表保存数据 (VB函数篇)

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

用注册表保存数据(VB函数篇)

作 者 : 扬眉

简介

注册表最开始是出现在Windows 3.x,是用来为OLE保存数据的。那时Windows和其应用程序的设置值大多都

保存在各不相同的.INI文件中。例如我们最为熟悉的System.ini和Win.ini就是这样的文件。当软件越安越多,

这种文件也越来越多,而且遍布硬盘的各个角落。既不便于管理,也浪费了很多磁盘空间(因为这些文件大多都很小)。

当Windows 95推出的时候,注册表应运而生。所有的设置值,不论是系统的,还是应用程序的,

都被保存在一个树型结构的数据库中。这样确实方便了不少,而且对多用户环境提供了更好的支持。而对程序员而言就麻烦了一些,

必须了解的是注册表的结构,又因为注册表不再是单一的文本文件,所以必须用专门函数来操作注册表。

注册表(Registry)是保存程序运行参数和用户设置的最佳地方。听过了太多的告诫,编辑注册表对很多人来

说似乎是一件神秘而复杂的事,但在VB中,通过四个注册表函数,一切都变得简单起来。

如果你对注册表有一些了解,那么应该知道注册表的结构和我们所熟悉的文件系统的结构是一样的,都是树型结构。

用主键来代替目录以划分各种不同的信息。在主键下面还可以有子主键和三种不同类型的键值。每个键值可以是字符串,

二进制值或者双字值中的一种。Visual Basic 提供了一个标准的注册位置(主键)以存储创建于 Visual Basic

的应用程序的程序信息: HKEY_CURRENT_USER\Software\VB and VBA Program Settings\

下面的所有函数所读写的注册表路径都是以这个路径为根的相对位置。

SaveSetting

这个函数用来向注册表数据库写入一些数据

SaveSetting appname, section, key, setting

appname

在向注册表写入数据之前,你必须计划好一个用在整个应用程序中的appname 。可以把注册表的内容比作一台计算机,

那么appname就是驱动器。它必须是一个字符串,也可以用数字,不过要用CStr 函数把它转换成字符串格式。

事实上它代表的是应用程序或工程的名称。一般来说,appname在整个应用程序中应该保持不便。

section

section可以说是这个模型中的目录,就向一台计算机上的目录一样。它用来把设置分类,可以包含Key或者子section。

如果给它传递vbNullChar 这个值的话,就表示要操作的键是在根目录下的,也就是在appname下面的。

key

相当于一个文件名。

setting

它代表文件中的信息,可以是一个数字或者字符串。

执行完后,在注册表的HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\"主键下面

的名为“key”的键将被赋值为“setting”,

如果相应的主键或者键名不存在,将会被创建。

GetSetting

这个函数用来从注册表中提取数据。

GetSetting(appname, section, key[, default])

Appname,section和key的含义和上面的一样。

default

如果Visual Basic没有找到指定的键,函数将返回参数default中得值。这个参数是可选的,但是对错误情况的处理很方便。

如果没有选用这个参数,

而指定的键的名称不存在,函数将返回一个长度为0的字符串。

下面看看例子:

SaveSetting "Logon Master", "Users\User0", _

"Name", "John"

注释:这将把数据"John"储存到注册表的 "Logon Master\Users\User0\Name"

注释:不过这是相对路径,相对于一个根

Debug.Print GetSetting("Logon Master", _

"Users\User0", "Name", "Anonymous"

注释:这将显示"John"

Debug.Print GetSetting("Logon Master", _

"Users\User1", "Name", "Anonymous"

注释:这次显示的将是"Anonymous",因为在

注释:"Logon Master\Users\User1\Name"没有预先储存值。

GetAllSettings

这个函数用来提取某个目录(主键)下面的所有文件(子键)。

GetAllSettings(appname, section)

参数的含义和其他的函数都是一样的。但这个函数和其他几个比起来更为复杂。他返回的的是一个2维字符串数组,

包含了所有的子键名称和乡音的子键值。看看下面这个例子,你很容易的就能搞清楚:

注释: 定义一个Variant类型的变量来保存GetAllSettings返回的二维数组

注释: Interger类型值用来计数

Dim MySettings As Variant, intSettings As Integer

注释:先在注册表中填入一些值

SaveSetting "Logon Master", "Users\User0", _

"Name", "John"

SaveSetting "Logon Master", "Users\User0", _

"Priviledges", "Supervisor"

注释:提取预先设定的数据

MySettings = GetAllSettings("Logon Master", _

"Users\User0")

注释:显示出来

For intSettings = LBound(MySettings, 1) _

To UBound(MySettings, 1)

注释:MySettings(x,0)中包含的是键名,

注释:而MySettings(x,1) 中包含的是键值

Debug.Print MySettings(intSettings, 0), _

MySettings(intSettings, 1)

Next intSettings

注意:GetAllSettings并不返回目录名,只是返回键名和相应的键值。

DeleteSetting

除了保存和提取数据,我们还要能够删除注册表中的注册项。这就要用到DeleteSetting函数了。

DeleteSetting appname[, section[, key]]

这个函数用来删除主键或者键。如果要删除的是键,要给出它所在的键名。如果要删除的是主键,

这它下面所有的键和子主键都会被删除。如果你要删除应用程序所有的注册表信息,就只用指定appname就可以了。

例如:

DeleteSetting "Logon Master", "Users\User0", "Name"

注释:这将删除Name键。

DeleteSetting "Logon Master", "Users"

注释:这将删除"Logon Master\Users"主键和其下的所有内容。

DeleteSetting "Logon Master"

注释:这将删除应用程序"Logon Master"下面的所有内容。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有