韦应物妻子:vc 注册表编程

来源:百度文库 编辑:中财网 时间:2024/04/20 01:15:36
注册表编程下,用不同的方法实现对其的读取与写入: 
API:创建步骤:创建键RegCreateKey(),打开键RegOpenKey(),写入注册表RegSetvalue,关闭RegCloseKey 
读取步骤 打开键RegOpenKey(),读取数据RegQueryValue() 

注册表存储在二进制文件中,Win32 API提供了大量的函数以便应用程序访问注册表。
1、  创建键:RegCreateKey(HKEY hKey,  LPCTSTR lpSubKey, PHKEY phkResult }
2、  打开键:RegOpenKey(HKEY hKey,  LPCTSTR lpSubKey, PHKEY phkResult }
3、  写入注册表:RegSetValue(默认REG_SZ类型),RegSetValueEx(其他类型)
RegSetValue(HKEY hKey,LPCTSTR lpSubKey,DWORD dwType,LPCTSTR lpData,DWORD cbData)RegSetValueEx(HKEY hKey, LPCTSTR lpValueName,  DWORD Reserved,, DWORD dwType,  LPBYTE lpData, DWORD cbData)4、  由注册表中读数据:RegQueryValue(默认REG_SZ类型),RegQueryValue Ex(其他类型)RegQueryValue( HKEY hKey,PCTSTR lpSubKey, LPTSTR lpValue,PLONG lpcbValue}LONG RegQueryValueEx( HKEY hKey,  LPCTSTR lpValueName, LPDWORD lpReserved,LPDWORD lpType,LPBYTE lpData,LPDWORD lpcbData|
5      关闭注册表 RegCloseKey(HKEY hKey );

  01 void CFileView::OnRegWrite()
  02 {
  03        HKEY hKey;
  04        RegCreateKey(HKEY_LOCAL_MACHINE,"SoftWare\\www.colsir.com\\admin",&hKey);
  05        RegSetValue(hKey,NULL,REG_SZ,"pan",strlen("pan"));
  06        RegCloseKey(hKey);
  07 }
  08 void CFileView::OnRegRead()
  09 {
  10        LONG lValue;
  11        RegQueryValue(HKEY_LOCAL_MACHINE,"SoftWare\\www.colsir.com\\admin",NULL,&lValue);
  12        char *pBuf=new char[lValue];
  13        RegQueryValue(HKEY_LOCAL_MACHINE,"SoftWare\\www.colsir.com\\admin",pBuf,&lValue);
  14        MessageBox(pBuf);
  15 }
BOOL GetLocalThenCopySet(){ BOOL    bLocalThenToDest = FALSE; DWORD dwDisposition,dwType,dwDest,dwSize = sizeof (DWORD); HKEY hKey; if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,_T("SOFTWARE\\sony\\Compile\\"),0L,NULL,REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,NULL,&hKey,&dwDisposition) == ERROR_SUCCESS) { if(RegQueryValueEx(hKey,_T("LocalThenCopy"),NULL,  &dwType,(BYTE *)&dwDest,&dwSize) == ERROR_SUCCESS) { bLocalThenToDest = dwDest; } else { RegSetValueEx(hKey,_T("LocalThenCopy"), 0L, REG_DWORD, (CONST BYTE*) &bLocalThenToDest, sizeof(DWORD)); } }
RegCloseKey(hKey); return bLocalThenToDest ;}