积极答复者
如何通过程序识别PC、surface?

问题
答案
-
你好,
你可以根据我的方法尝试下以下代码。需要把程序属性设置为多字节。
#include "pch.h" #include <iostream> #include <windows.h> #include <stdio.h> void main() { HKEY hKey; char value[1024]; DWORD ValueLen = 255; DWORD DataType = REG_SZ; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\BIOS", 0, KEY_READ, &hKey) == ERROR_SUCCESS) { if (RegQueryValueEx(hKey, "SystemProductName", 0, &DataType, (BYTE*)&value, &ValueLen) == ERROR_SUCCESS) { printf("SystemProductName: "); std::cout << value << std::endl; } else { printf("Get SystemProductName from regedit error!\n"); return; } } else { printf("Get SystemProductName from regedit error!\n"); return; } }
Best Regards,
Suarez Zhou
- 已标记为答案 刘男亚 2019年8月9日 3:05
全部回复
-
你好,
感谢你在MSDN论坛发帖。
这一块的信息在安装系统时都有在注册表内注册过。详情你可以查看你的电脑的注册表,如下位置。
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS
这里应该有个键值SystemProductName是你surface的型号,根据这个判断你的电脑型号是什么。剩下的就是通过一些注册表相关的API去调用将键值传进程序了。
Best Regards,
Suarez Zhou
- 已编辑 Suarez-ZhouMicrosoft contingent staff 2019年8月8日 2:39
-
你好,
你可以根据我的方法尝试下以下代码。需要把程序属性设置为多字节。
#include "pch.h" #include <iostream> #include <windows.h> #include <stdio.h> void main() { HKEY hKey; char value[1024]; DWORD ValueLen = 255; DWORD DataType = REG_SZ; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System\\BIOS", 0, KEY_READ, &hKey) == ERROR_SUCCESS) { if (RegQueryValueEx(hKey, "SystemProductName", 0, &DataType, (BYTE*)&value, &ValueLen) == ERROR_SUCCESS) { printf("SystemProductName: "); std::cout << value << std::endl; } else { printf("Get SystemProductName from regedit error!\n"); return; } } else { printf("Get SystemProductName from regedit error!\n"); return; } }
Best Regards,
Suarez Zhou
- 已标记为答案 刘男亚 2019年8月9日 3:05