关于c ++:如何在qt中获取进程名称?

How to get your process name in qt?

如何在qt中获取您的(此应用程序当前正在运行)进程名称?


如果要获取可执行文件的名称(即通常保存在argv[0]中的字符串),则可以通过读取QCoreApplication::arguments()的第一个元素来获取该名称。

在Unix上,这只有在正确初始化Q(Core)Application的情况下才有效:

1
2
3
4
5
6
int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    //...
    return app.exec();
}

编辑:实际上,最好调用QCoreApplication::applicationFilePath()以获取可执行文件的完整路径。 给定其完整路径,您可以使用QFileInfo::fileName()轻松获取可执行文件的名称。


我认为您正在寻找QCoreApplication :: applicationPid()。


不幸的是,Qt中没有这样的东西。

您必须使用正在使用的平台的本机API来检索此信息。

Windows:检查GetCurrentProcessId()和如何在C ++中获取进程名称

Linux:如何在Linux中获取当前进程名称?


使用arg的第一部分

1
2
   QStringList args = QCoreApplication::instance()->arguments();
    args.takeFirst();