1 #include <iostream>
2 #include <windows.h>
3 using namespace std;
4
5 int main()
6 {
7 HKEY hKEY;
8 char *KeyPath = "SYSTEM\\CurrentControlSet\\services\\TermService";
9
10 // 以读方式打开注册表
11 if(ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, KeyPath, 0, KEY_READ, &hKEY))
12 {
13 // 定义读取 REG_DWORD 类型键值参数
14 DWORD dwValue;
15 DWORD dwType = REG_DWORD;
16 DWORD dwSize = sizeof(DWORD);
17
18 // 定义读取 REG_SZ 类型键值参数
19 char szValue[MAX_PATH];
20 DWORD szType = REG_SZ;
21 DWORD szSize = MAX_PATH;
22
23 // 定义读取 REG_BINARY 类型键值参数
24 unsigned char binValue[MAX_PATH];
25 DWORD binType = REG_BINARY;
26 DWORD binSize = MAX_PATH;
27
28 // 读取 REG_DWORD 类型键值 Type 的值
29 if(ERROR_SUCCESS == RegQueryValueEx(hKEY, "Type", 0, &dwType, (LPBYTE)&dwValue, &dwSize))
30 {
31 printf("REG_DWORD 类型键值 Type 的值为:%u.\n", dwValue);
32 }
33
34 // 读取 REG_SZ 类型键值 DisplayName 的值
35 if(ERROR_SUCCESS == RegQueryValueEx(hKEY, "DisplayName", 0, &szType, (LPBYTE)&szValue, &szSize))
36 {
37 printf("REG_SZ 类型键值 DisplayName 的值为:%s.\n", szValue);
38 }
39
40 // 读取 REG_BINARY 类型键值 FailureActions 的值
41 if(ERROR_SUCCESS == RegQueryValueEx(hKEY, "FailureActions", 0, &binType, (LPBYTE)&binValue, &binSize))
42 {
43 printf("REG_BINARY 类型键值 FailureActions 的值为:\n");
44 int i;
45 for(i = 0; i < binSize; i++)
46 printf("%02X ", binValue[i]);
47 printf("\n");
48 }
49 }
50 RegCloseKey(hKEY);
51 }