科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道运用.NET读写Windows注册编辑表

运用.NET读写Windows注册编辑表

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果你曾经使用过RegOpenKeyEx、RegCreateKeyEx、RegCloseKey等Win32 API函数读写过注册编辑表,你肯定非常熟悉这些复杂的Registry函数。

作者:中国IT实验室 来源:中国IT实验室 2007年9月4日

关键字: 注册编辑表 Windows 读写

  • 评论
  • 分享微博
  • 分享邮件
  如果你曾经使用过RegOpenKeyEx、RegCreateKeyEx、RegCloseKey等Win32 API函数读写过注册编辑表,你肯定非常熟悉这些复杂的Registry函数。相反,在.NET框架中,Registry和RegistryKey类提供了对Windows注册编辑表的控制,通过这些类你可非常容易地对注册编辑表进行读写。

  这些类被定义在Microsoft.Win32命名空间和mscorlib.dll装配中,使用这些类之前,你必须使用using声明这些命名空间。

  #using
  using namespace Microsoft::win32;

  Registry类只有七个字段成员,使得你能够存取注册编辑表中七个特定的键,这同你在注册编辑表中打开一个键非常类似,这些所有的成员均返回一个指向注册键的指针。

  ClassesRoot 对应于HKEY_CLASSES_ROOT
  CurrentConfig 对应于HKEY_CURRENT_CONFIG
  CurrentUser 对应于HKEY_CURRENT_USER
  DynData 对应于HKEY_DYN_DATA
  LocalMachine 对应于HKEY_LOCAL_MACHINE
  PerformanceData 对应于HKEY_PERFORMANCE_DATA
  Users 对应于HKEY_USERS

  比如你想读写HKEY_LOCAL_MACHINE的数据,你可以先获得一个指向该键的指针。

  RegistryKey* pRegKey = Registry::LocalMachine;

  接着调用RegistryKey的OpenSubKey成员函数,然后再调用GetValue即可获得一个特定的字符串。

  pRegKey->OpenSubKey(L'SOFTWARE\\Kruse Inc\\Version');
  Object *pValue = pRegKey->GetValue(L'kWise');

  如果你想设置一个键的值,则需要调用它的SetValue函数。

  pRegKey->SetValue(L'kWise', 'some Value Here');

  删除一个值可以使用:

  pRegKey->DeleteValue(L'kWise');

  其它常用的成员函数还有:

  DeleteSubKey 删除一个子键
  CreateSubKey 如果键已经存在就打开该键,否则就创建新键
  DeleteSubKeyTree 删除子键及其节点

  下面是程序代码例子(Microsoft Visual c++.net beta2调试通过):

  #using
  using namespace System;
  using namespace Microsoft::Win32;
  // 这是应用程序的入口点
  int main(void)
  {
  RegistryKey * pRegKey = Registry::LocalMachine;
  pRegKey = pRegKey->OpenSubKey(L'HARDWARE\\DESCRIPTION
       \\System\\CentralProcessor\\0');
  Object *pValue = pRegKey->GetValue(L'VendorIdentifier');
  Console::WriteLine(L'本机的CPU为: {0}.', pValue);
  return 0;
  }

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章