Qt 判断在virtualBox和VMWare虚拟机运行

在程序启动运行时,有时候需要判断自己是否在虚拟机环境内运行的,所以需要些一些函数来做判断,windows系统可以执行WMIC命令通过WMI获取到到关键数据。

virtualBox如下:

//检测在VirtualBox虚拟机运行
bool IsInsideVirtualBox()
{
    QProcess process;
    process.start("wmic computersystem get Model");
    process.waitForFinished();
    QString strRest = process.readAllStandardOutput();
    QStringList resutlList = strRest.split("\r\n");
    for(const auto &ss : resutlList){
        qInfo() << ss;
        if(ss.contains("VirtualBox", Qt::CaseInsensitive))
            return true;
    }
    return false;
}

VMMare如下:

//检测在VMWare虚拟机运行
bool IsInsideVMWare()
{
    QProcess process;
    process.start("wmic computersystem get Manufacturer, model");
    process.waitForFinished();
    QString strRest = process.readAllStandardOutput();
    QStringList resutlList = strRest.split("\r\n");
    for(const auto &ss : resutlList){
        qInfo() << ss;
        if(ss.contains("VMware", Qt::CaseInsensitive))
            return true;
    }
    return false;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值