Russian Qt Forum

Qt => Многопоточное программирование, процессы => Тема начата: Ground от Ноябрь 21, 2012, 14:18



Название: Подсчет количества запущенных экземпляров ПО
Отправлено: Ground от Ноябрь 21, 2012, 14:18
Доброго дня. Интересует, как можно реализовать функционал подсчета количества запущенных копий программ. Вроде бы тривиальная задача, но я не нашел способов ее решения, проще, чем городить QSharedMemory или что-то в таком духе. Может кто-нибудь знает способ проще и эффективнее?


Название: Re: Подсчет количества запущенных экземпляров ПО
Отправлено: Serr500 от Ноябрь 21, 2012, 14:36
Это нетривиальная задача. Самое простое её решение - QSharedMemory.


Название: Re: Подсчет количества запущенных экземпляров ПО
Отправлено: ctin от Декабрь 21, 2012, 10:03
Код:
int thisProcessCount(const char *arg)
{
    QProcess process;
    process.start("cmd", QStringList() << "/C" << "echo" << "process" << "get" << "caption" << "|" << "wmic");
    process.waitForStarted(2000);
    process.waitForFinished(2000);
    bool result = process.readAll().count(QFileInfo(QString(arg).section('\\',-1)).fileName().toAscii());
    if(QFile::exists("TempWmicBatchFile.bat"))
        QFile::remove("TempWmicBatchFile.bat");
    return result;
}
не-быдло решение: QtSingleApplication