65.9K
CodeProject 正在变化。 阅读更多。
Home

CHKLM v1.1 - 注册表访问

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (2投票s)

2000 年 3 月 4 日

viewsIcon

91784

downloadIcon

947

一个免费的 MFC 类,用于写入 HKEY_LOCAL_MACHINE。

  • 下载源代码文件 - 11 Kb
  • 引言

    欢迎使用 CHKLM v1.0,这是一个简单的 MFC 类,允许您向 HKEY_LOCAL_MACHINE 注册表项写入值。MFC 提供的函数仅允许将值写入 HKEY_CURRENT_USER

    提供完整的源代码供感兴趣者参考。包含一个 VC 5 工作区文件,该文件构建了一个简单的演示控制台应用程序,该应用程序调用此类的方法。


    特点
    历史
    API
    联系作者


    特点

    • 基于 MFC 函数的简单、干净的 C++ 接口。
    • 类完全符合 Unicode 标准,并在工作区文件中包含 Unicode 构建选项。
    • 提供 HTML 文件形式的完整文档。


    历史

    V1.0 (1998 年 6 月 27 日)
    • 首次公开发布。

    V1.01 (1999 年 7 月 14 日)

    • 现在提供 VC 5 工作区而不是 VC 6。
    • 整理了文档文件。
    • Unicode 生成配置现在可以实际编译和工作了 <g>。

    V1.1 (1999 年 10 月 3 日)

    • 添加了 GetProfileStringArray()WriteProfileStringArray() 方法。


    API

    API 由 CHKLM 类的公共方法组成。它们包括

    CHKLM::SetRegistryKey
    CHKLM::WriteProfileString
    CHKLM::GetProfileString
    CHKLM::WriteProfileInt
    CHKLM::GetProfileInt
    CHKLM::GetProfileBinary
    CHKLM::WriteProfileBinary
    CHKLM::GetProfileStringArray
    CHKLM::WriteProfileStringArray


    CHKLM::SetRegistryKey

    void SetRegistryKey(LPCTSTR lpszRegistryKey);

    参数

    • lpszRegistryKey -- 指向包含项名称的字符串的指针。
    • nIDRegistryKey -- 注册表中项的 ID/索引。

    备注
    此函数设置 m_sRegistryKey,该变量随后由 CHKLM 的成员函数使用。注册表项通常是公司的名称。它存储在以下形式的项中: HKEY_LOCAL_MACHINE\Software\<公司名称>\<应用程序名称>\<节名称>\<值名称>


    CHKLM::GetProfileInt

    UINT GetProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault);

    返回值
    如果函数成功,则返回跟随指定项的字符串的整数值。如果函数未找到该项,则返回值是 nDefault 参数的值。如果与指定项对应的值不是整数,则返回值为 0。

    检索有符号整数时,应将值转换为 int

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。
    • lpszEntry -- 指向要检索其值的项的以 null 结尾的字符串。
    • nDefault -- 指定当框架找不到该项时要返回的默认值。此值可以是 0 到 65,535 范围内的无符号值,或 -32,768 到 32,767 范围内的有符号值。

    备注
    调用此成员函数以从应用程序 HKLM 注册表部分中指定节内的项检索整数值。

    此成员函数不区分大小写,因此 lpszSectionlpszEntry 参数中的字符串在大小写上可能不同。


    CHKLM::WriteProfileInt

    BOOL WriteProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。如果节不存在,则会创建它。节名称不区分大小写;字符串可以是任意组合的大小写字母。
    • lpszEntry -- 指向要写入其值的项的以 null 结尾的字符串。如果指定的节中不存在该项,则会创建它。
    • nValue -- 包含要写入的值。

    备注
    调用此成员函数以将指定值写入应用程序 HKLM 注册表部分的指定节。


    CHKLM::GetProfileString

    CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL);

    返回值
    返回值是应用程序 HKLM 注册表部分中的字符串,如果找不到字符串,则返回 lpszDefault。框架支持的最大字符串长度为 _MAX_PATH。如果 lpszDefaultNULL,则返回值为一个空字符串。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。
    • lpszEntry -- 指向要检索其字符串的项的以 null 结尾的字符串。此值不能为 NULL
    • lpszDefault -- 指向初始化文件中找不到的项的默认字符串值。

    备注
    调用此成员函数以检索与应用程序 HKLM 注册表部分中指定节内的项关联的字符串。


    CHKLM::WriteProfileString

    BOOL WriteProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。如果节不存在,则会创建它。节名称不区分大小写;字符串可以是任意组合的大小写字母。
    • lpszEntry -- 指向要写入值的项的以 null 结尾的字符串。如果指定的节中不存在该项,则会创建它。
    • lpszValue -- 指向要写入的字符串。如果此参数为 NULL,则删除由 lpszEntry 参数指定的项。

    备注
    调用此成员函数以将指定的字符串写入应用程序 HKLM 注册表部分的指定节。


    CHKLM::GetProfileBinary

    BOOL GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBYTE* ppData, UINT* pBytes);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。
    • lpszEntry -- 指向要检索其二进制项的项的以 null 结尾的字符串。此值不能为 NULL
    • ppData -- 成功返回时,此将包含二进制项。
    • pBytes -- 成功返回时,此将包含二进制项的大小。

    备注
    调用此成员函数以检索与应用程序 HKLM 注册表部分中指定节内的项关联的二进制项。用户负责删除 ppData 内存。


    CHKLM::WriteProfileBinary

    BOOL WriteProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBYTE pData, UINT nBytes);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。如果节不存在,则会创建它。节名称不区分大小写;字符串可以是任意组合的大小写字母。
    • lpszEntry -- 指向要写入值的项的以 null 结尾的字符串。如果指定的节中不存在该项,则会创建它。
    • pData -- 指向要写入的二进制数据的指针。
    • nBytes -- pData 指向的二进制数据的大小。

    备注
    调用此成员函数以将指定的二进制值写入应用程序 HKLM 注册表部分的指定节。


    CHKLM::GetProfileStringArray

    BOOL GetProfileStringArray(LPCTSTR lpszSection, LPCTSTR lpszEntry, CStringArray& array);

    返回值
    成功则为非零,否则为 0。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。
    • lpszEntry -- 指向要检索其字符串数组的项的以 null 结尾的字符串。此值不能为 NULL
    • array -- 成功返回时,此将包含 CStringArray。

    备注
    调用此成员函数以检索与注册表中指定节内的项关联的字符串数组。该值在注册表中存储为 MULTI_SZ 字符串。


    CHKLM::WriteProfileStringArray

    BOOL WriteProfileStringArray(LPCTSTR lpszSection, LPCTSTR lpszEntry, const CStringArray& array);

    返回值
    成功时为非零;否则为 FALSE。

    参数

    • lpszSection -- 指向指定项所在节的以 null 结尾的字符串。如果节不存在,则会创建它。节名称不区分大小写;字符串可以是任意组合的大小写字母。
    • lpszEntry -- 指向要写入值的项的以 null 结尾的字符串。如果指定的节中不存在该项,则会创建它。
    • array -- 要写入的 CStringArray。

    备注
    调用此成员函数以将指定的字符串数组写入注册表。该值将作为 MULTI_SZ 字符串存储在注册表中。



    联系作者

    PJ Naughter
    电子邮件:pjn@indigo.ie
    网站:http://www.naughter.com
    1999 年 10 月 3 日


    © . All rights reserved.