C++ 注册表编程
记一个简单的案例:
下面是一个console的简单例子,
文档的最后附上一个基于MFC基本对话框-的开发例子源码github地址,实现了对注册表的增删改查 -- add by 2019-07-24
1 // RegSample.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <Windows.h> 6 #include <iostream> 7 using namespace std; 8 9 BOOL GetRegVal(TCHAR *path,TCHAR *key){ 10 HKEY hkey; 11 char buf[512]; 12 DWORD dwSize=512,dwType=REG_SZ; 13 14 if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER,path,0,KEY_QUERY_VALUE,&hkey)){ 15 RegQueryValueEx(hkey,key,0,&dwType,(BYTE*)&buf,&dwSize); 16 MessageBox(NULL,(LPCWSTR)buf,_T("test"),MB_OK); 17 RegCloseKey(hkey); 18 return TRUE; 19 }else{ 20 RegCloseKey(hkey); 21 return FALSE; 22 } 23 } 24 25 BOOL SetRegVal(TCHAR *name,DWORD nameSize,TCHAR *val,DWORD valSize){ 26 HKEY hkey; 27 DWORD dwType=REG_SZ; 28 DWORD dwRecive; 29 30 if(ERROR_SUCCESS == RegCreateKeyEx(HKEY_CURRENT_USER,L"Console\\Git Bash\\NewOpt1",0,(LPWSTR)"REG_SZ",REG_OPTION_NON_VOLATILE,KEY_CREATE_SUB_KEY|KEY_SET_VALUE|KEY_WRITE,NULL,&hkey,&dwRecive)) 31 { 32 RegSetValueEx(hkey,name,0,dwType,(BYTE*)val,valSize); 33 RegCloseKey(hkey); 34 return TRUE; 35 } 36 RegCloseKey(hkey); 37 return FALSE; 38 } 39 40 int _tmain(int argc, _TCHAR* argv[]) 41 { 42 //设置键值 43 wchar_t name[] = L"hello",val[] = L"world"; 44 SetRegVal(name,sizeof(name),val,sizeof(val)); 45 46 //取值 47 wchar_t path[] = L"Console\\Git Bash\\NewOpt1", key[] = L"hello"; 48 GetRegVal(path,key); 49 ::system("pause"); 50 return 0; 51 }
https://github.com/mox9378/RegOperator
欢迎 C++/Python 的朋友一起交流学习, My QQ Number: 2303186535
-- 来自m星人的问候