韦应物妻子:vc 注册表编程
来源:百度文库 编辑:中财网 时间:2024/05/03 07:34:46
注册表编程下,用不同的方法实现对其的读取与写入:
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 ;}
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 ;}