代码:
QString getUsedMemory(DWORD pid) { char pidChar[25]; //将DWORD类型转换为10进制的char*类型 _ultoa(pid, pidChar, 10); //调用外部命令 QProcess p; p.start("tasklist /FI \"PID EQ " + QString(pidChar) + " \""); p.waitForFinished(); //得到返回结果 QString result = QString::fromLocal8Bit(p.readAllStandardOutput()); //关闭外部命令 p.close(); //替换掉"," result = result.replace(",", ""); //匹配 '数字+空格+K'部分。 QRegExp rx("(\\d+)(\\s)(K)"); //初始化结果 QString usedMem(""); if (rx.indexIn(result) != -1) { //匹配成功 usedMem = rx.cap(0); } //截取K前面的字符串,转换为数字,供换算单位使用。 usedMem = usedMem.left(usedMem.length() - 1); //换算为MB的单位 return QString::number(usedMem.toDouble() / 1024) + " MB"; }