none
如何通过程序识别PC、surface? RRS feed

答案

  • 你好,

    你可以根据我的方法尝试下以下代码。需要把程序属性设置为多字节。

    #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
    2019年8月8日 5:29

全部回复

  • 你好,

    感谢你在MSDN论坛发帖。

    这一块的信息在安装系统时都有在注册表内注册过。详情你可以查看你的电脑的注册表,如下位置。

    HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS

    这里应该有个键值SystemProductName是你surface的型号,根据这个判断你的电脑型号是什么。剩下的就是通过一些注册表相关的API去调用将键值传进程序了。

    Best Regards,

    Suarez Zhou


    2019年8月8日 2:31
  • 你好,

    你可以根据我的方法尝试下以下代码。需要把程序属性设置为多字节。

    #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
    2019年8月8日 5:29