Посмотрите
тутПоищите ещё qtsingleapplication
Дополню вырезкой из старого приложения:
C++ (Qt)
QtSingleApplication app( argc, argv );
// Если копия приложения уже запущена, тогда отсылаем сообщение той копии и заканчиваем процесс
if ( app.isRunning() )
{
app.sendMessage( "-show -message" );
return 0;
}
Manager manager;
QObject::connect(&app, SIGNAL(messageReceived(QString)), &manager, SLOT(messageReceived(QString)));
QObject::connect(&app, SIGNAL(aboutToQuit()), &manager, SLOT(quit()));
C++ (Qt)
void Manager::messageReceived( const QString & text )
{
foreach ( const QString & command, text.split(" ") )
{
if ( command == "-show" )
showManager();
else if ( command == "-message" )
tray->showMessage( tr( "Information" ), tr( "Application is already running" ), QSystemTrayIcon::Information, 5000 );
else if ( command == "-beep" )
qApp->beep();
}
}