本文由CSDN用户zuishikonghuan所作,转载请注明出处:
http://blog.csdn.net/zuishikonghuan/article/details/46967369
想必注册表大家都不陌生,微软自然也提供了注册表操作的API,通过这些API,我们可以修改注册表达到很多目的,比如添加关联,修改系统设置等。
注意:绝大多数的注册表键的ACL都是不允许标准用户权限的程序写入的,因此,请使用管理员权限运行程序。
一。基本感念:
1。键(项),值项
注册表编辑器左侧的那些文件树中的每个都叫“键”(也叫项),右侧的那些叫值项(也可叫“键值”)。
子键(子项):一个键下面的分支
2。数据类型:
REG_SZ:字符串
REG_MULTI_SZ:多字符串
REG_BINARY :二进制数
REG_DWORD :这个就不用我说了吧,看名字就知道是DWORD
(typedef unsigned long DWORD;)
更多数据类型参见MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724884(v=vs.85).aspx
二。关于WOW64的问题:
32位程序运行在64位系统上操作注册表会出现问题,在下面会有说明。
三。创建注册表键
MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx
函数原型:
LONG WINAPI RegCreateKeyEx(
_In_ HKEY hKey,
_In_ LPCTSTR lpSubKey,
_Reserved_ DWORD Reserved,
_In_opt_ LPTSTR lpClass,
_In_ DWORD dwOptions,
_In_ REGSAM samDesired,
_In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes,
_Out_ PHKEY phkResult,
_Out_opt_ LPDWORD lpdwDisposition
);
提示:这个也可以用来打开一项。
hKey:要打开键的句柄或以下预定义句柄