使用VC操作Windows Moblie 注册表

很久以前总结的,拿出来分享一下。

Windows Mobile 的注册表进行操作主要是如下几个函数:

1RegCreateKeyEx()
2
RegOpenKeyEx()
3
RegQueryValueEx()
4
RegSetValueEx()
5
RegDeleteKey()
6
RegCloseKey() 

下面分别作以下介绍:

1、     RegCreateKeyEx() 函数原形如下:

1.   LONGRegCreateKeyEx

2.  

3.     HKEY hKey,

4.     LPCTSTR lpSubKey, 

5.     DWORD Reserved,

6.     LPTSTR lpClass, 

7.     DWORD dwOptions,

8.     REGSAM samDesired,

9.     LPSECURITY_ATTRIBUTES lpSecurityAttributes,

10.    PHKEY phkResult,

11.    LPDWORD lpdwDisposition 

12.  );

     实现功能:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。提供该函数是为了向后兼容。所有的WIN32应用程序应使用函数RegCreateKeyEx()。各参数及返回值的含义如下:
  ·hKey为主键值,可以取下面的一些数值:HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIG、  HKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_USERHKEY_PERFORMANCE_DATA(WINNT操作系统)HKEY_DYN_DATAWIN9X操作系统);
  ·参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含将要创建或打开的子键的名称。子键不可以用反斜线(/)开始。该参数可以为NULL
  ·参数Reserved为保留值,必须设置为0
  ·参数lpClass为一个指向包含键类型的字符串。如果该键已经存在,则忽略该参数;
·
参数dwOptions为新创建的键设置一定的属性。可以取下面的一些数值:  REG_OPTION_NON_VOLATILE ,表示新创建的键为一个非短暂性的键(数据信息保存在文件中,当系统重新启动时,数据信息恢复);REG_OPTION_VOLATILE,表示新创建的键为一个短暂性的键(数据信息保存在内存中),Windows95忽略该数值;REG_OPTION_BACKUP_RESTORE 仅在WINNT中支持,可以提供优先级支持;
  ·参数samDesired用来设置对键访问的权限,可以取下面的一些数值:KEY_CREATE_LINK,表示准许生成符号键;KEY_CREATE_SUB_KEY 表示准许生成子键;KEY_ENUMERATE_SUB_KEYS 表示准许生成枚举子键;KEY_EXECUTE 表示准许进行读操作;KEY_NOTIFY表示准许更换通告;  KEY_QUERY_VALUE 表示准许查询子键;KEY_ALL_ACCESS 提供完全访问,是上面数值的组合;KEY_READ 是下面数值的组合:KEY_QUERY_VALUEKEY_ENUMERATE_SUB_KEYSKEY_NOTIFY;  KEY_SET_VALUE 表示准许设置子键的数值;KEY_WRITE 是下面数值的组合:KEY_SET_VALUEKEY_CREATE_SUB_KEY
  ·参数lpSecurityAttributes为一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否被子处理过程继承。如果该参数为NULL,则句柄不可以被继承。在WINNT中,该参数可以为新创建的键增加安全的描述;
  ·参数phkResult为一个指向新创建或打开的键的句柄的指针;
  ·参数lpdwDispition指明键是被创建还是被打开的,可以是下面的一些数值:  REG_CREATE_NEW_KEY表示键先前不存在,现在被创建;REG_OPENED_EXISTING_KEY 表示键先前已存在,现在被打开。
  如果该函数调用成功,则返回ERROR_SUCCESS。否则,返回值为文件WINERROR.h中定义的一个非零的错误代码,可以通过设置FORMAT_MESSAGE_FROM_SYSTEM标识调用FormatMessage()函数来获取一个对错误的总体描述。

 

2RegOpenKeyEx()函数原形如下:

1.   LONG RegOpenKeyEx

2.   (

3.     HKEY hKey, 

4.     LPCTSTR lpSubKey, 

5.     DWORD ulOptions,

6.     REGSAM samDesired, 

7.     PHKEY phkResult 

8.   );

9.    

      实现功能:打开一个指定的键,并返回打开键的句柄。各参数及返回值的含义如下:
  ·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
  ·参数lpSubKey为一个指向以零结尾的字符串的指针,其中包含子键的名称,可以利用反斜线(/)分隔不同的子键名。如果字符串为空,则根据hKey参数创建一个新的句柄。在这种情况下,并不关闭先前打开的句柄;
  ·参数ulOption保留,通常必须设置为0
  ·参数samDesired的含义同RegCreateKeyEx函数中的samDesired参数;
  ·参数phkResult为一个指针,用来指向打开的键的句柄。可以通过RegCloseKey函数关闭这个句柄;
  ·函数的返回值同RegCreateKeyEx函数的返回值。

 

3 RegQueryValueEx()函数原形如下:

1.   LONG RegQueryValueEx

2.   (

3.     HKEY hKey, 

4.     LPCTSTR lpValueName, 

5.     LPDWORD pReserved, 

6.     LPDWORD lpType, 

7.     LPBYTE lpData, 

8.     LPDWORD lpcbData

9.   );

10.   

      实现功能:根据要查询的键的句柄,要返回的查询的数据。各个参数及返回值的含义如下:
  ·参数hKey为当前的一个打开的键的句柄,具体数值同RegCreateKeyEx函数的hKey参数;
  ·参数lpVauleName为一个指向非空的包含查询值的名称的字符串指针;
  ·参数lpReserved保留,必须为NULL
  ·参数lpType为一个指向数据类型的指针,数据类型为下列类型之一:REG_BINARY 二进制数据、REG_DWORD 32位整数、REG_DWORD_LITTLE_ENDIAN littleendian格式的数据,例如0X12345678以(0X78 0X56 0X34 0X12)方式保存、REG_DWORD_BIG_ENDIAN bigendian格式的数据,例如0X12345678以(0X12 0X34 0X56 0X78)方式保存、REG_EXPAND_SZ 一个包含未扩展环境变量的字符串、REG_LINK 一个Unicode类型的链接、REG_MULIT_SZ 以两个零结尾的字符串、REG_NONE 无类型数值、REG_RESOURCE_LIST 设备驱动资源列表、REG_SZ 一个以零结尾的字符串根据函数使用的字符集类型的不同而设置为UnicodeANSI类型的字符串;
  ·参数lpData为一个指向保存返回值的变量的指针。如果不需要返回值,该参数可以为NULL
  ·参数lpcbData为一个指向保存返回值长度的变量的指针。其中长度以字节为单位。如果数据类型为REG_SZREG_MULTI_SZREG_EXPAND_SZ,那么长度也包括结尾的零字符,只有在参数lpDataNULL时,参数lpcbData才可以为NULL;返回值同RegCreateKeyEx函数的返回值;

4RegSetValueEx()函数原形如下:

1.   LONG RegSetValueEx

2.   (

3.    HKEY hKey, 

4.    LPCTSTR lpValueName, 

5.    LPDWORD lpReserved, 

6.    DWORD dwType, 

7.    const BYTE *lpData, 

8.    DWORD cbData

9.   );

    实现功能:设置注册表中的一个键值。各个参数及返回值的含义如下:
  ·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
  ·参数lpValueName为一个指向包含值名的字符串指针;Reserved保留,通常必须设置为0
  ·参数dwType确定了设置的值的类型同RegQueryValueKeyExlyType参数;
  ·参数lpData为一个指向包含数据的缓冲区的指针;
  ·参数cbData以字节为单位,指定数据的长度;
   返回值同RegCreateKeyEx函数的返回值。

 

5RegDeleteKey()函数原形如下:

1.   LONG RegDeleteKey

2.   (

3.     HKEY hKey

4.     LPCTSTR lpSubKEY

5.   );

    实现功能:函数RegDeketeKey删除一个键及所有的子键。各个参数及返回值的含义如下:
  ·参数hKey的含义同RegCreateKeyEx函数中的hKey参数;
  ·参数lpSubKey的含义同RegCreateKeyEx函数中的lpSubKey参数。 

 

6RegCloseKey()函数原形如下:

1.   RegCloseKey

2.   (

3.     HKEYhKey

4.   );

实现功能:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果,关闭一个键后,句柄变为非法,此时应释放句柄。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值