Processnévre keres, visszaadja az első találat PIDjét, egyébként -1-et.int getPID(QString processName)
{
#ifdef _WIN32
QProcess proc;
proc.start("tasklist");
proc.waitForFinished();
while (!proc.atEnd())
{
QString s = proc.readLine();
if (s.startsWith(processName))
{
return s.simplified().split(" ")[1].toInt();
}
}
return -1;
#else
QProcess proc;
QStringList args;
args << "-c" << "ps aux | grep \"" + processName + "\" | grep \"root\"";
proc.start("/bin/sh", args);
proc.waitForFinished();
QString s = proc.readLine();
QStringList list = s.simplified().split(" ");
if (list[0] != "root")
{
return -1;
}
return list[1].toInt();
#endif
}
Ha meg olyasmit akarsz kiíratni a couttal, amit nem tud (jelen esetben egy QStringet), akkor egy ilyen függvényt kell írni:ostream& operator<<(ostream& os, QString s)
{
os << s.toStdString();
return os;
}
|