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