您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關C/C++讀寫注冊表中二進制數據的代碼是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
1、RegOpenKeyEx 函數:
原形:
LONGRegOpenKeyEx( HKEYhKey,//要打開主鍵名 LPCTSTRlpSubKey,// 需要打開的子鍵或路徑 DWORDulOptions,//保留,為0 REGSAMsamDesired,//操作權限標志 PHKEYphkResult//指向你打開鍵的句柄 (通過指針返回));
返回值:不成功返回非0,成功返回ERROR_SUCCESS.解釋:該函數負責打開指定的鍵或子鍵,如果不存在他不建立。
查看微軟官方文檔:http://msdn.microsoft.com/zh-cn/aa912084
2、RegSetValueEx函數:
原形:
LONGRegSetValueEx( HKEYhKey,//已打開的鍵的句柄 LPCTSTRlpValueName,//要查詢值的名稱,傳如\"\"為查詢鍵下的默認值 DWORDReserved,//保留 DWORDdwType,//寫入鍵值的類型 CONSTBYTE*lpData,//變量數據的地址 DWORDcbData//變量的長度);
返回值:不成功返回非0,成功返回ERROR_SUCCESS解釋:設置某子鍵下特定名稱的值。
查看微軟官方文檔:http://msdn.microsoft.com/zh-cn/aa916717#
3、RegQueryValueEx函數:
原形:
LONGRegQueryValueEx( HKEYhKey,//已打開的鍵的句柄 LPTSTRlpValueName,//要查詢值的名稱,傳如\"\"為查詢鍵下的默認值 LPDWORDlpReserved,//保留,為0 LPDWORDlpType,//查詢的類型 LPBYTElpData,//數據存放的地址 LPDWORDlpcbData//數據長度+1);
返回值:不成功返回非0,成功返回ERROR_SUCCESS解釋:讀取某子鍵下特定名稱的值。
查看微軟官方文檔:http://msdn.microsoft.com/zh-cn/aa914692
寫入二進制數據代碼示例:
# include <windows.h># include <tchar.h> int main(void){HKEY hKey;HKEY rootKey = HKEY_CURRENT_USER;TCHAR * subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" "\\MenuOrder\\Start Menu2\\Programs\\test";TCHAR * keyValue = "c:\\test.exe";long openReg;long setRegValue;DWORD dwType = REG_BINARY;BYTE value[256] = "c:\\test.exe";openReg = RegOpenKeyEx(rootKey, subKey, 0, KEY_WRITE, &hKey);if (openReg == ERROR_SUCCESS){setRegValue = RegSetValueEx(hKey, _T("order"), 0, dwType, value, 256);if (setRegValue == ERROR_SUCCESS){MessageBox(NULL, _T("Write Sucess"), _T("call"), MB_OK);}else{MessageBox(NULL, _T("Write Fail"), _T("call"), MB_OK);}RegCloseKey(hKey);}return 0;}
讀取二進制數據的代碼示例:
# include <windows.h># include <tchar.h> int main(void){HKEY hKey;HKEY rootKey = HKEY_CURRENT_USER;TCHAR * subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" "\\MenuOrder\\Start Menu2\\Programs\\test";long openRegResult;long readRegResult;DWORD dwType = REG_BINARY;REGSAM mode = KEY_READ;BYTE value[256] = {0};DWORD length = 256;openRegResult = RegOpenKeyEx(rootKey, subKey, 0, mode, &hKey);if (ERROR_SUCCESS == openRegResult){readRegResult = RegQueryValueEx(hKey, _T("order"), 0, &dwType, value, &length);if (ERROR_SUCCESS == readRegResult){MessageBox(NULL, _T(value), _T("call"), MB_OK);}else{MessageBox(NULL, _T("ERROR"), _T("call"), MB_OK);}}RegCloseKey(hKey);return 0;}
注:讀寫其他類型的注冊表鍵值與上述的類似,不單獨講解了。
看完上述內容,你們對C/C++讀寫注冊表中二進制數據的代碼是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。