Cpp 注册表编程

记一个简单的案例:

占位,有待补充

 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 }

猜你喜欢

转载自www.cnblogs.com/emjx/p/11207460.html
cpp