zoukankan      html  css  js  c++  java
  • 使用GetSetting函数和SaveSetting函数读写注册表设置

    可以使用注册表来存储应用程序的初始和配置的设置。VBA允许读写下列注册表路径中的注册表设置:
    HKEY_CURRENT_USERSoftwareVB and VBA Program Settings{子键}
    要在这个注册表路径中读取注册表设置,使用GetSetting函数。要写入注册表设置到该注册表路径中,使用SaveSetting函数。注意,不正确地修改注册表会导致严重的后果,甚至需要重新安装操作系统。
    GetSetting函数和SaveSetting函数的语法如下:
    SaveSetting(AppName,Section,Key,Setting)
    GetSetting(AppName,Section,Key[,Default])
    其中:

    • 参数AppName必需,String类型,指定VB and VBA Program Settings键的子键;
    • 参数Section必需,String类型,在参数AppName中指定的键的子键;
    • 参数Key必需,String类型,在参数Section中指定的键的值;
    • 参数Setting必需,String类型或数值型,存储在参数Key指定的值中的一块数据;
    • 参数default可选,String类型,指定当参数Key中没有设置值时返回的数据。

    使用DeleteSetting函数删除子键或值,其语法为:
    DeleteSetting(AppName[,Section[,Key]]
    其中的参数与上述相同。
    下面的示例代码创建带有两个值的子键,列出它们的值,然后删除子键并再次试图列出它们的值。

    关于GetSetting函数和SaveSetting函数的一些说明

    • 如果忽略GetSetting函数中的参数Default,则认为是一个零长字符串(”")。
    • 参数Section可以是一个嵌套子键的路径,每个子键与其父键之间使用反斜杠隔开。例如,如果参数Section的值为SettingsCoordinates,则表明从HKEY_CURRENT_USERSoftwareVB and VBA Program Settings[AppName]SettingsCoordinates中检索值。
    • SaveSetting函数不允许改变注册表项的缺省值,否则会产生运行时错误。

    下面再看一个示例:

    论坛找来的讲文件打开次数写入注册表,用来计算excel打开次数的代码

    Private Sub Workbook_Open()
    Counter = GetSetting("XYZ Corp", "Budget", "Count", 0)
    LastOpen = GetSetting("XYZ Corp", "Budget", "Opened", " ")
    
    Msg = "本文件已经打开 " & Counter & "次。"
    Msg = Msg & vbCrLf & " 上次打开的时间为" & LastOpen
    MsgBox Msg, vbInformation, ThisWorkbook.Name
    
    Counter = Counter + 1
    LastOpen = Date & " " & Time
    SaveSetting "XYZ Corp", "Budget", "Count", Counter
    SaveSetting "XYZ Corp", "Budget", "Opened", LastOpen
    End Sub
    

      

    关于DeleteSetting函数的一些说明

    • 不能使用DeleteSetting函数从注册表的主键里删除那些不是HKEY_CURRENT_USERSoftwareVB and VBA Program Settings的子键的项。
    • 如果提供了参数Key,那么只有名为Key的项及其关联的值被删除;如果忽略了参数Key,那么参数Section指定的子键将被删除;如果忽略了参数Section,那么参数AppName的键将被全部删除。
    • DeleteSetting函数不能删除属于任何键的缺省值。

    下面再看一个示例,代码如下:

    其中,使用GetAllSettings函数可以获取某应用程序的一系列键。该函数返回一个二维的Variant型数组,其第一维表示返回的设置,第二维则返回键名或键值。

  • 相关阅读:
    mySQL教程 第1章 数据库设计
    System center virtual machine manager 2008 R2安装部署及实战技术
    cisco ssh配置
    IPv6地址介绍
    远程桌面如何复制本地文件 远程桌面拷贝电脑上的文件方法
    mySQL教程 第2章 准备学习用到的表和数据
    十四个ASP.NET基础知识问答(C#版)
    十四个ASP.NET基础知识问答(C#版)
    关闭框架网页(C#)
    关闭框架网页(C#)
  • 原文地址:https://www.cnblogs.com/Young-shi/p/12916890.html
Copyright © 2011-2022 走看看