注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取,写入,删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: RegCloseKey RegConnectRegistry RegCreateKey RegCreateKeyEx RegDeleteKey RegDeleteVale RegEnumKey RegFlushKey RegGetKeySecurity(此函数,98不适用) RegLoadKey RegNotifyChangeKeyValue(98不适用) RegOpenKey RegOpenKeyEx RegQueryInfoKey RegQueryValue RegQueryValueEx RegReplaceKey RegRestoreKey(98不适用) RegSaveKey RegSetKeySecurity(98不适用) RegSetValue RegSetValueEx RegUnLoadKey 我们对经常使用的几个函数进行介绍。 1·RegClose() 原形:LONG RegCloseKey( HKEY hKey // 释放已经打开的注册表句柄 ); 返回值:不成功返回非0,成功返回ERROR_SUCCESS 解释:关闭指定的主册表键,释放句柄。当对一个或多个键或值操作完成以后,需要关闭其键来进行保存操作结果。关闭一个键后,句柄变为非法,以使其不可再次被使用。为系统重新使用而释放句柄。 例子 BOOL bRet = TRUE; if( m_hKey == NULL ) return( FALSE ); bRet = ( ::RegCloseKey( m_hKey ) == ERROR_SUCCESS ); m_hKey = NULL; return( bRet );
2·RegCreateKeyEx()和RegCreateKey() 原形:LONG RegCreateKeyEx( HKEY hKey, // 主键名称 LPCTSTR lpSubKey, // 子键名称或路径 DWORD Reserved, // 保留,为0 LPTSTR lpClass, // 没弄懂,我设为空也差不多 DWORD dwOptions, /* 对你建立的键的一些选项,可以是这些值:REG_OPTION_NON_VOLATILE,REG_OPTION_VOLATILE,REG_OPTION_BACKUP_RESTORE第一个是默认的了。一般用第一个就可以了。*/ REGSAM samDesired, // 设置你对你建立的这个键的访问权限 LPSECURITY_ATTRIBUTES lpSecurityAttributes, //不太明白 PHKEY phkResult, // 指向你建的句柄 LPDWORD lpdwDisposition //用来查看是打开一个已经有的键,还是新建了键 ); RegCreateKey()函数简单了不少,请自己看了。 返回值:不成功返回非0,成功返回ERROR_SUCCESS. 解释:打开指定的键或子键。如果要打开的键不存在的话,本函数会试图建立它。当在创建或打开注册表的键时,需要指定访问权限,而这些访问权限需要到一级。默认的权限是KEY_ALL_ACCESS权限。还有KEY_CREATE_LINK创建字符链权限,KEY_CREATE_SUB_KEY创建子键权限,KEY_EXECUTE读取键权限,KEY_NOTIFY获得修改键通知的权限,KEY_QUERY_VALUE查询键值的权限,KEY_SET_VALUE设置数据值的权限。注意不能在根一级建键,在注册表的根一级仅可有预定义的键。具体使用,请查看联机手册。 例子: HKEY m_hkey; DWORD dwDisposition; long ret0=(::RegCreateKeyEx (HKEY_CURRENT_USER,"REGD//",0,NULL, REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hkey,&dwDisposition)); if(ret0!=ERROR_SUCCESS) //如果无法打开hKEY,则终止程序的执行 { MessageBox("错误: 无法打开有关的hKEY!"); return; } if(dwDisposition==REG_OPENED_EXISTING_KEY) MessageBox("打开了一个已经存在的键"); else { if(dwDisposition==REG_CREATED_NEW_KEY) MessageBox("建立一个新键"); } RegClosekey(m_hkey);
3·RegOpenKey()和RegOpenKeyEx() 原形:LONG RegOpenKeyEx( HKEY hKey, // 要打开主键名 LPCTSTR lpSubKey, // 子键或路径 DWORD ulOptions, // 保留,为0 REGSAM samDesired, // 操作权限标志 PHKEY phkResult // 指向你打开键的句柄 ); 返回值:不成功返回非0,成功返回ERROR_SUCCESS. 解释:该函数负责打开指定的键或子键,如果不存在他不建立。其他和RegCreateKeyEx()和RegCreateKey()基本相同。 <  
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
1/2 1 2 下一页 尾页 |