Beginner
Location: Košice, Slovak Republic
Occupation: Programmer (PalmOS, Android, currently starting with Qt)
|
|
Source code |
1 2 3 4 5 6 7 8 |
QMap<QString,QProcess *> map;
QProcess *process=new Qprocess();
process->start("command",parameters,QProcess::ReadOnly);
process->waitForStarted();
if(!process->waitForFinished(2000))
map.insert(myprocessid,process)
else
delete process;
|
|
|
Source code |
1 2 3 |
process->kill(); process->waitForFinished(); delete process; |
This post has been edited 1 times, last edit by "selmi" (Mar 25th 2010, 8:21am)
Beginner
Location: Košice, Slovak Republic
Occupation: Programmer (PalmOS, Android, currently starting with Qt)
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#ifdef Q_OS_LINUX
Q_PID pid=pid();
QProcess killer;
QStringList params;
params << "--ppid";
params << QString::number(pid);
params << "-o";
params << "pid";
params << "--noheaders";
killer.start("/bin/ps",params,QIODevice::ReadOnly);
if(killer.waitForStarted(-1))
{
if(killer.waitForFinished(-1))
{
QByteArray temp=killer.readAllStandardOutput();
QString str=QString::fromLocal8Bit(temp);
QStringList list=str.split("\n");
for(int i=0;i<list.size();i++)
{
if(!list.at(i).isEmpty())
::kill(list.at(i).toInt(),SIGKILL);
}
}
}
#endif
|