美文网首页
判断Windows是否为虚拟机

判断Windows是否为虚拟机

作者: MrSunday_8955 | 来源:发表于2019-08-06 18:54 被阅读0次

    主流的虚拟机大概有以下几种:
    VMware
    Virtualbox
    Virtual PC
    VMLite
    Kernel-based Virtual Machine(KVM)
    HSSM Virtual Machine(HVM)
    Red Hat Enterprise virtualization(RHEV)

    Windows系统可以通过查询注册表中的SystemProductName来判断当前环境是不是虚拟机。

    //查询注册表,获取SystemProductName
    string GetSystemProductName() {
        string strValue;
        LPCTSTR lpSubKey = TEXT("SYSTEM\\ControlSet001\\Control\\SystemInformation");
        GetRegValue(lpSubKey, TEXT("SystemProductName"), strValue);
    
        return strValue;
    }
    
    bool IsVirtualMachine() {
        int i;
        bool isVM = false;
        char VmName[6][10] = { "Virtual", "KVM", "VMware", "HVM", "RHEV", "VMLite" };
        string productName = GetSystemProductName();
    
        for(i=0;i<6;i++) {
            if (productName.compare(0, string(VmName[i]).length(), VmName[i])==0) {
                // Virtual
                isVM = true;
                break;
            }
        }
    
        return isVM
    }
    

    相关文章

      网友评论

          本文标题:判断Windows是否为虚拟机

          本文链接:https://www.haomeiwen.com/subject/wugwdctx.html