注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 操作系统 > Windows > Windows注册表 > 其它技巧 内容正文:编程解决注册表问题所需的函数详解

编程解决注册表问题所需的函数详解

发布时间:2006-08-23 13:43:49 来源:友佳学院 网友评论 0 条

 3、GetAllSettings 从 Windows 注册表中返回应用程序项目的所有注册表项设置及其相应值

  语法 GetAllSettings(appname, section)

  参数 appname 必要。字符串表达式,应用程序或工程的名称。

  section 必要。字符串表达式,包含区域名称,并要求该区域有注册表项设置。GetAllSettings 返回 Variant,其内容为字符串的二维数组,该二维数组包含指定区域中的所有注册表项设置及其对应值。

  说明 如果 appname 或 section 不存在,则 GetAllSettings 返回未初始化的 Varian

  函数示例 本示例首先使用 SaveSetting 语句来建立 Windows标准位置里 appname 应用程序的项目,然后再使用 GetAllSettings 函数来取得设置值并显示出来。请注意,应用程序名和 section 名称不能用 GetAllSettings 函数取得。最后,使用 DeleteSetting 语句将该应用程序项删除。

  ' 用来保存 GetAllSettings 函数所返回之二维数组数据的变量

  ' 整型数是用来计数用。

  Dim MySettings As Variant, intSettings As Integer

  ' 在注册表中添加设置值。

  SaveSetting appname := "我的工程", section := "我的子键", key := "Top", setting := 75

  SaveSetting "我的工程","我的子键", "Left", 50

  ' 取得输入项的设置值。

MySettings = GetAllSettings(appname := "我的工程",
       section := "我的子键")
For intSettings = LBound(MySettings, 1) To
       UBound(MySettings, 1)
Debug.Print MySettings(intSettings, 0), MySettings(intSettings, 1)
Next intSettings
DeleteSetting "我的工程", "我的子键"

  4、DeleteSetting 从应用程序项目里删除区域或注册表项设置

  语法 DeleteSetting appname, section[, key]

  参数 appname 必需的。字符串表达式,应用程序或工程的名称。

  section 必要。字符串表达式,包含要删除注册表项设置的区域名称。如果只有 appname 和 section,则将指定的区域连同所有有关的注册表项设置都删除。

  key 可选。字符串表达式,包含要删除的注册表项设置。

  说明 如果提供了所有参数,则删除指定的注册表项设置。如果试图使用不存在的区域或注册表项设置上的 DeleteSetting 语句,则发生一个运行时错误。

  函数示例 见SaveSetting函数示例

  二、 调用 Windows API 函数来操作注册表

  虽然VB本身提供了四个关于注册表的函数,但是这四个函数只能在标准位置即“HKEY_CURRENT_USERSoftwareVB and VBA ProgramSettings”下读取、删除、修改键值。对于一般的应用程序,利用它们就可以达到您的目的,对于特殊的要求利用它们就显得无能为力了。在 Visual Basic 中除了使用这四个内部语句或函数外,还可以调用 Windows API 函数来操作注册表。

  所谓 API(Application Programing Interface) 是 Windows 提供的一个32位环境下的应用程序编程接口,其中包括了众多的函数,提供了相当丰富的功能。我们在编制应用程序时,可以调用其中的注册表函数来对注册表进行操作以实现我们需要的功能。Windows API 中可用于注册表的函数一共有二十多个,根据其功能不同可以分为如下几类:

  1.键管理类

   RegCloseKey() RegCreateKey() RegCreateKeyEx() RegDeleteKey() RegDeleteKeyEx() RegOpenKey() RegOpenKeyEx()

  2.值管理类

   RegDeleteValue() RegQueryValue() RegQueryValueEx() RegSetValue() RegSetValueEx()

  3.查询计数类

   RegQueryInfoKey() RegEnumKey() RegEnumKeyEx() RegEnumValue()

  4.备份/恢复类

   RegLoadKey() RegReplaceKey() RegRestoreKey() RegSaveKey()

  5.实用类

   RegConnectRegistry() RegNotifyChangeKeyValue() RegUnloadKey()

  6.安全类(仅适用于NT)

   RegGetKeySecurity() RegSetKeySecurity()

  下面详细介绍这几个Windows API 函数的用法:

  1. RegOpenKey——取得SubKey的Hkey

    RegOpenKeyEx():同RegOpenKey()

  VB声明 Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

  参数类型及说明:

  hKey:Key Handle

  lpSubKey:SubKey名称或路径

  phkResult:若RegOpenKey执行成功,则这一参数返回Subkey的hKey.

  返回值: =0,表示成功;≠0,表示失败。[注意这一点与别的API函数不太一样]

  示例:

ret = RegOpenKey(HKEY_LOCAL_MACHINE,
         "SOFTWAREMicrosoft", hKey)

  2.RegCreateKeyEx、RegCreateKey函数:建立SubKey

 
VB声明 Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
 
  它的参数用法与RegOpenKey一样。所不同的是RegOpenKey只能打开已经有的SubKey,而RegCreateKey则可以建立SubKey,比较特别的是,如果调用RegCreateKey所建立的SubKey是一个已经存在的SubKey,则它的功能和RegOpenKey相同。由于RegCreateKey的这种特性,有的程序员干脆不用RegOpenKey,而用RegCreateKey来统一代替RegOpenKey。

  示例:

ret = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWAREHongqt", hKey)

  3.RegClose函数:关闭SubKey

  
Declare Function RegCloseKey Lib "advapi32.dll"
            (ByVal hKey As Long) As Long

  当我们不再存取Registry时,将打开或建立的SubKey关闭是一个比较好的习惯,就正如我们在使用C语言的文件打开函数后必须要关闭一样。

  示例:

ret = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWAREMicrosoft", hKey)
……
RegClose hkey
 2/6   |‹ ‹‹ 1 2 3 4 5 6 ›› ›|
相关文章
    无相关信息
【评论】【收藏本文】【打印】【关闭】
上一篇文章:对注册表进行编辑的三种途径
下一篇文章:用VB函数轻松访问系统注册表
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
编程解决注册表问题所需的函数详解
编程解决注册表问题所需的函数详解
清空系统远程可访问的注册表全部路径
清空系统远程可访问的注册表全部路径
推荐阅讯
  • 禁用危险的远程注册表
  • 导出与引入注册表
  • 注册表与Windows 98文件系统的关系
  • 网上冲浪要小心 不让别人动你的注册表
  • 注册表数据结构
  • 修改注册表加强Win 2000安全
  • 初识注册表
  • 注册表内的安全和用户权限设置
  • 设置系统注册表防止页面文件泄露信息
  • 用Visual Basic修改Windows98注册表
阅读排行
  • 1.注册表知识:HKEY_LOCAL_MACHINE根键详解
  • 2.浏览网页注册表被修改之迷及解决办法
  • 3.初识注册表
  • 4.收放自如 注册表禁止使用和恢复禁用
  • 5.雕虫小技 教你吓走想要动你电脑的人
  • 6.对注册表进行编辑的三种途径
  • 7.编程解决注册表问题所需的函数详解
  • 8.网上冲浪要小心 不让别人动你的注册表
  • 9.Windows系列操作系统注册表的组成与分析
  • 10.解除封锁注册表被禁用的几种解决办法
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载