]> git.sesse.net Git - casparcg/blob - common/os/windows/system_info.h
2.0.0.2: - Cleanup and improvements in main.cpp.
[casparcg] / common / os / windows / system_info.h
1 #pragma once\r
2 \r
3 #include <windows.h>\r
4 \r
5 #include <string>\r
6 #include <sstream>\r
7 \r
8 namespace caspar {\r
9         \r
10 static std::wstring get_cpu_info()\r
11 {\r
12         std::wstring cpu_name = L"Unknown CPU";\r
13         HKEY hkey; \r
14         DWORD dwType, dwSize;\r
15         if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0"), 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS)\r
16         {\r
17                 wchar_t p_name_str[1024];\r
18 \r
19                 dwType = REG_SZ;\r
20                 dwSize = sizeof(p_name_str);\r
21 \r
22                 if(RegQueryValueEx(hkey, TEXT("ProcessorNameString"), NULL, &dwType, (PBYTE)&p_name_str, &dwSize) == ERROR_SUCCESS)             \r
23                         cpu_name = p_name_str;          \r
24                  \r
25                 RegCloseKey(hkey);\r
26         }\r
27 \r
28 \r
29         SYSTEM_INFO sysinfo;\r
30         GetSystemInfo(&sysinfo);\r
31 \r
32         std::wstringstream s;\r
33 \r
34         s << cpu_name << L" Physical Threads: " << sysinfo.dwNumberOfProcessors;\r
35 \r
36         return s.str();\r
37 }\r
38 \r
39 static std::wstring get_system_product_name()\r
40 {\r
41         std::wstring system_product_name = L"Unknown System";\r
42         HKEY hkey; \r
43         DWORD dwType, dwSize;\r
44         if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DESCRIPTION\\System\\BIOS"), 0, KEY_QUERY_VALUE, &hkey) == ERROR_SUCCESS)\r
45         {\r
46                 wchar_t p_name_str[1024];\r
47 \r
48                 dwType = REG_SZ;\r
49                 dwSize = sizeof(p_name_str);\r
50 \r
51                 if(RegQueryValueEx(hkey, TEXT("SystemProductName"), NULL, &dwType, (PBYTE)&p_name_str, &dwSize) == ERROR_SUCCESS)               \r
52                         system_product_name = p_name_str;               \r
53                  \r
54                 RegCloseKey(hkey);\r
55         }\r
56 \r
57         return system_product_name;\r
58 }\r
59 \r
60 \r
61 }