摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>VB>VB-API文章
◎→ 本类最新
Win95系统API函数大揭秘
WIN32 API的分类介绍--
WIN32 API的分类介绍--
WIN32 API的分类介绍--
WIN32 API
VB中用API函数实现文件夹列表
VB中利用API函数实现特殊窗体的两
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
VB基础视频教程
VB窗体文章
VB文件文章
VB数据库文章
VB-API文章
VB控制文章
◎→ 热门资源
ListBox项的控制
HitTest的妙用
HitTest的妙用
B对低层硬件访问控制
《 VB5中注册控件三法 》
指定文件夹
怎样在DELPHI中使用API函数

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


日期:2008-10-20 17:48:27    来源:互联网
   
 ·读取和修改Windows注册表 ·利用VB捕捉并保存屏幕图像
 ·VB5.0 中远程数据库的访问
用注册表保存数据(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"下面的所有内容。
 [1]

导入注册表设置

利用VB捕捉并保存屏幕图象

PING一个IP地址(向它发送一个数据包并等待回应)

--->腾讯QQ IP数据库 2007.05.13┊附带IP数据维护工具V1.1┊珊瑚虫精简绿色特别版
--->腾讯QQ IP数据库 2007.05.06┊附带IP数据维护工具V1.1┊珊瑚虫精简绿色特别版
--->QQ IP数据库 2006.6.13 珊瑚虫精简版
--->Double Driver V1.0┊备份和恢复驱动程序、保存驱动程序列表┊汉化绿色特别版
--->CIH破坏的硬盘数据修复工具
Tags:  注册表 保存 数据

芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们