标签:des style blog http os 使用 ar sp 2014
注册表这个东西是个很好玩的东西,但是总是在一层一层的包含关系里找到需要的项真是有点麻烦,而且有谁会记住路径呢?
反正我是不会记的,写个小程序,让路径保存进代码里面。释放自己的大脑储存容量。
个人就以打开Windows 8 的Aero效果为例演示注册表API的简单编程。
首先来熟悉一下简单的流程:
简单了解后就可以开始正题。
这里准备了两个函数,这两个函数的代码几乎一样,只是修改的值不一样,所以下面本人只会对一个函数进行简单概述。
这个函数里包括了三个参数,三者都是个人预设的,来自这里:
注:这里提醒一下,上图的路径要用两个”\”,别忘了转义字符。
打开或设置一个项,判断一下是否成功还是有必要的。如果成功会返回0,也可以用ERROR_SUCCESS。
打开一个项用RegOpenKeyEx(),这里给出函数原型(来自MSDN):
第一个参数是系统预设值,HKEY型,注意这不是内核型的。这里列出所有预设值:
第二个参数是子路径。
第三个参数MSDN给出必须是0。
第四个参数设置了要操作的权限,可写或只读等。
第五个指针是输出,这里就必须要在前面定义一个HKEY型的变量,然后给出指针。
设置一个项的值用RegSetValueEx(),这里给出函数原型(来自MSDN):
第一个参数是一个已存在的或已打开的项,这里就是用了RegOpenKeyEx()打开项后的最后一个参数。
第二个参数是所要设置值的项名,知道项名可以使用这个函数。
第三个参数MSDN给出也必须为0.
第四个参数是预设的打开的方式,这里的REG_DWORD是32位的数。
第五个参数是要设置的值的BYTE类型,用强制类型把ValueOfAero这个整数值转换为BYTE类型。
第六个参数则是设置值的长度,直接用sizeof()获取ValueOfAero的长度即可。
到这里到了最后一个步骤,关闭打开项,直接用RegCloseKey(),参数为已打开的项。
最后注销系统(其实关闭“桌面窗口管理器”就可以了,但我不知道怎么做)就可以打开了Aero效果。不国个人感觉这样打开的效果不是很完美,但注册表编程的目的已达到。
因为两个函数代码一样,这样就可以在写多一个函数,实现相同部分的代码,实现代码的重复使用,也简化一些代码,这个也很容易实现,我就不说明了。
还有,可以在代码中加入报错功能,GetLastError()就可以轻易实现,当然你也可以再把报错码转换成文字错误。
最后贴出两个函数的具体参数链接(更多的操作函数都可以在MSDN查询到,真是个好地方):
RegOpenKeyEx():
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724897(v=vs.85).aspx
RegSetValueEx():
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724923(v=vs.85).aspx
标签:des style blog http os 使用 ar sp 2014
原文地址:http://www.cnblogs.com/NomyfanChan/p/c_api_programming.html