.NET读写Windows注册编辑表

分类: asp.net技巧   出处:iocblog整理  更新时间:2009-10-30   添加到收藏  

  如果你曾经使用过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 (www.iocblog.net 文章来源)
  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;
  }(www.iocblog.net 文章来源)


Tag: 注册表 ,registry



文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。