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

利用VB.NET访问注册表 利用VB.NET访问注册表 译者注:访问注册表的例子比较多,然而通过VB.NET访问注册表的例子并不多,本文翻译了一篇MSDN上的利用VB.NET存取注册表的例子,挺详细也挺全面的。 ( http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchimpdragdrop.as 阅读详情

 简介

   注册表最开始是出现在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"下面的所有内容。

VB读取注册表 Private Type SECURITY_ATTRIBUTES   nLength As Long   lpSecurityDescriptor As Long   bInheritHandle As BooleanEnd TypeDim lang As StringPrivate Declare Function RegOpenKeyEx Lib "advapi 阅读详情

相关推荐

掌握VB6.0中的注册表操作技巧

本文还有配套的精品资源,点击获取 简介:VB6.0是用于Windows应用程序开发的编程环境,提供了通过API调用来编辑Windows注册表的能力。注册表是系统的核心数据库,管理着系统和应用程序的配置信息。学习如何在VB6.0中使用API函数操作注册表,包括键的创建、查询、修改及关闭,是软件配置和用户信息存储的关键。本文将指导如何在VB6.0中正确、安全地编辑注册表,包括数...

weixin_31688273的博客 1518

软件安装信息、系统服务在注册表中的位置

软件安装信息、注册表

Think88666的博客 6441

VB编程中注册表操作的详细指南

在Windows操作系统中,注册表是一个庞大的数据库系统,用于存储配置信息、系统设置以及应用程序和驱动程序的相关数据。通过编程方式读写注册表可以实现对系统和应用程序的深度定制和管理。VB(Visual Basic)作为一种简单的编程语言,提供了Registry对象用于与注册表进行交互。这种操作可以执行创建、修改、删除和查询注册表项和值的命令。然而需要注意的是,直接操作注册表存在风险,比如可能会导致系统不稳定或软件冲突,因此在操作前需要确保代码的正确性和安全性。

weixin_42587866的博客 963

操作注册表

简介    注册表最开始是出现在Windows 3.x,是用来为OLE保存数据的。那时Windows和其应用程序的设置值大多都保存在各不相同的.INI文件中。例如我们最为熟悉的System.ini和Win.ini就是这样的文件。当软件越安越多,这种文件也越来越多,而且遍布硬盘的各个角落。既不便于管理,也浪费了很多磁盘空间(因为这些文件大多都很小)。    当Windows 95推出的时候,注册表应

行者的专栏 960

VB注册表操作实战:读写Windows注册表完整指南

注册表作为Windows操作系统的核心数据库,承载着系统配置、硬件信息、用户偏好及应用程序设置等关键数据。在Visual Basic(VB)开发中,对注册表的读写操作是实现程序持久化配置、跨会话数据保存以及深度系统集成的重要手段。本章将从注册表的基本结构入手,介绍其逻辑层级(如等根键),阐述VB为何需要访问注册表,并分析注册表操作在现代软件开发中的实际意义。通过理解注册表的工作机制与安全模型,开发者可以更合理地设计配置管理策略,避免因误操作导致系统不稳定或权限冲突。

weixin_29041443的博客 1000

VB注册表读取示例教程及代码

本文还有配套的精品资源,点击获取 简介:本文通过一个VB项目实例,展示了如何编写程序来读取Windows注册表。项目包括四个主要文件: REGINQ.VBP 工程文件、 GENUTILS.BAS 通用工具模块、 MAIN.FRM 主窗体以及 readme.txt 文档。 REGINQ.VBP 负责项目结构...

weixin_42571280的博客 991

注册表基本操作、应用、维护及优化

注册表的概述、基本操作、以及注册表的应用、维护和优化

cooper的笔记本 5860

VB6注册表操作:使用纯API类模块

Visual Basic 6.0(VB6)是微软推出的一个面向对象的编程语言,是其Visual Basic系列的最后版本。它为开发者提供了一套简易的集成开发环境(IDE),允许快速开发Windows桌面应用程序。VB6以其易学易用著称,是许多IT从业者的编程入门语言,尽管它已不再是最新技术,但其广泛的普及度和良好的社区支持,使其在某些应用场景中仍然占有一席之地。VB6环境包括:- 代码编辑器:用于编写源代码。- 表单设计器:用于设计应用程序用户界面。

weixin_36282234的博客 900

TCL脚本文件读取和写入--实操版

TCL脚本文件读取和写入

aaaaaaaa585的博客 9347

使用VB防止误操作注册表编辑器

htmltable {th, td {th {pre {简介:本文介绍如何利用Visual Basic(VB)编程语言编写代码来限制用户对计算机注册表编辑器的访问,从而避免不当修改注册表导致系统不稳定或崩溃。注册表是存储系统及应用配置的关键组件。文章强调,此类代码应在确保必要时使用,以防止非专业人士的误操作。通过API函数调用或修改特定注册表键值,可以实现对注册表编辑器的禁用,这需要开发者谨慎处理,以确保系统的可配置性和安全性。

weixin_36304957的博客 658

告别F5失灵!手把手教你为Cursor配置.Net Core控制台项目专属调试环境

本文详细指导如何在Cursor编辑器中为.Net Core控制台项目配置专属调试环境,解决F5失灵等常见问题。从调试器选择到launch.json配置,再到高级调试技巧,帮助开发者高效搭建完整的调试工具链,提升开发效率。

weixin_28834765的博客 286

TCL脚本语言学习日记

TCL脚本语言学习笔记

m0_61414859的博客 1484

基于AT32F421的紧凑型FOC电机驱动板设计

磁场定向控制(FOC)是永磁同步电机(PMSM)与无刷直流电机(BLDC)实现高精度转矩控制和高效运行的核心技术,其本质是通过Clarke/Park坐标变换解耦定子电流,实现d轴磁链与q轴转矩的独立调节。该技术依赖实时性严苛的电流采样、高精度位置反馈及确定性PWM生成,广泛应用于机器人关节、智能装备等中小功率伺服场景。国产Cortex-M4微控制器(如AT32F421)凭借集成ADC、高级定时器与DSP指令集,已成为低成本、高可靠FOC嵌入式实现的理想平台。本文围绕一款工程化FOC驱动板展开,涵盖低侧电流采

weixin_42510243的博客 703

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

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 763

calibre:将calibre 的layer number 转换为实际的laymer 名称(7)

可以使用与版图数据库配套的(Standard Verification Rule Format,标准验证规则格式),在 Calibre DESIGNrev 中加载图层名称。

u013620135的博客 984

SAP-ABAP:SAP IDOC 全面学习指南

SAP-ABAP:SAP IDOC 全面学习指南

baidu_35680696的博客 1616

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

用注册表保存数据 (VB函数篇) (转)[@more@] 用注册表保存数据(VB函数篇) 作 者 : 扬眉    简介    注册表最开始是出现在windows 3.x,是用来为OLE保存数据的。那时Windows和其...

cuiji1279的博客 370

海思芯片OpenHarmony系统移植:Sensor传感器模块HDF驱动配置HCS文件详解

海思系列芯片的传感器模块通过HDF(Hardware Driver Foundation)驱动框架进行管理和配置。传感器HCS(HDF Configuration Source)配置文件定义了各类传感器的硬件参数、总线配置、寄存器序列等信息,为传感器驱动提供必要的初始化和运行参数。海思系列芯片适配OpenHarmony的传感器HDF配置HCS文件是传感器驱动开发的关键部分,通过合理配置可以实现各种传感器设备的驱动支持。

m0_67505153的博客 209

用VB操作注册表

 在Windows出问题时,如果能够了解Windows系统的注册表,将更容易解决问题; 许多商品化的软件或专业化的软件在您的机器上首次安装的时候都会通过改写注册表来完成软件的正确安装运行,要成为编程高手当然需要掌握读写注册表这一技术。用好注册表将会为您的应用程序增色不少,下面笔者将具体介绍VB中与注册表有关的编程方法。 注册表的组织结构 存取注册表以前, 必须先了解注册表的组织结构, 而了解注册表

1764

解析 RABAX during SAPGUI Logon 错误及其解决方案

登录用户关联了初始启动程序,该程序由于未处理的异常导致运行时错误。在 ST22 查看错误的程序名和错误行。修复初始程序代码中的逻辑问题。重新部署修复后的代码。示例代码:防止未处理的异常TRY." 模拟逻辑处理ENDTRY.此代码通过 TRY-CATCH 块捕获潜在错误,避免程序崩溃。是 SAP 系统中常见的运行时错误,其根源可能涉及多个方面,包括用户配置、系统状态、数据库连接和自定义开发等。通过结合 ST22、SM21 等诊断工具,以及完善的代码实践和系统监控,可以有效预防和解决此类问题。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1781

【Claude Code的Harness Engineering实现】:06-记忆系统(Memory)

记忆系统是Claude Code实现跨会话持久化和上下文保持的核心组件。它分为短期记忆(当前会话的对话历史)和长期记忆(跨会话保留的结构化信息),通过多层级的文件系统实现灵活的记忆管理。

rengang66的博客 240

VB如何在Win10X64位系统上进行读写64位的注册表

VB如何在Win10X64位系统上进行读写64位的注册表

键盘上的舞指 2089

基于STM32+RFID设计的宿舍检修管理系统

设计一个上位机,用来管理查看维修检修信息,当维修寝室的设备或者检修完成时,通过STM32上的RC522刷一下这个寝室的IC卡,识别这是哪个寝室,识别成功后在软件上弹出一个对话框,填写本次维修或者检修的事件,填写完毕点击提交即可。...

2555

VB.Net 注册表 读写

'写入注册表 WebBrowser1设定内核 Private Function SetRegistry(ByVal strKey As String, ByVal strName As String, ByVal strValue As String) As Boolean Try Dim Key_LocalMachine As Microsoft.Win...

9.歌工作室 1267

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: 如何用SQL Server 2008 SQL语句将Excel数据导入到数据库里指定的表里面?
下一篇: 建表和建约束相关sql
coffeeing
博客等级 码龄19年 5粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值