How to get your process name in qt?
如何在qt中获取您的(此应用程序当前正在运行)进程名称?
		
		
- 
定义"进程名称"。 您的意思是可执行文件的文件名吗?
 
	 
如果要获取可执行文件的名称(即通常保存在argv[0]中的字符串),则可以通过读取QCoreApplication::arguments()的第一个元素来获取该名称。
在Unix上,这只有在正确初始化Q(Core)Application的情况下才有效:
| 12
 3
 4
 5
 6
 
 | int main(int argc, char* argv[]){
 QApplication app(argc, argv);
 //...
 return app.exec();
 }
 | 
编辑:实际上,最好调用QCoreApplication::applicationFilePath()以获取可执行文件的完整路径。 给定其完整路径,您可以使用QFileInfo::fileName()轻松获取可执行文件的名称。
		
		
- 
或QFileInfo(QCoreApplication :: applicationFilePath()).fileName()作为可执行文件的文件名。
- 
@弗兰克:谢谢,我在回答中补充了这一点。
- 
该方法可能适用于您编写的应用程序。 但是请记住,即使不建议使用进程,也可以在运行时更改其名称。 因此,依靠可执行文件名称可能不是最好的主意。 最好是信任本机API。
 
	 
我认为您正在寻找QCoreApplication :: applicationPid()。
		
		
- 
PID不是名称。 进程ID和进程名称是不同的属性。
 
	 
不幸的是,Qt中没有这样的东西。
您必须使用正在使用的平台的本机API来检索此信息。
Windows:检查GetCurrentProcessId()和如何在C ++中获取进程名称
Linux:如何在Linux中获取当前进程名称?
使用arg的第一部分
| 12
 
 |    QStringList args = QCoreApplication::instance()->arguments();args.takeFirst();
 |