The following approach has worked quite well (I'm using it in sostronk.com's desktop app):
// H class UniqueApp : public QObject { Q_OBJECT public: explicit UniqueApp(QObject *parent = 0); static bool anotherInstanceRunning(); void monitor(); signals: void anotherInstance(); }; // CPP static const int TIMEOUT = 100; bool UniqueApp::anotherInstanceRunning() { QLocalSocket c; c.connectToServer(QString("%1").arg(qApp->applicationName())); qDebug() << "Trying to connect to existing instance of " << c.serverName(); return c.waitForConnected(TIMEOUT); } void UniqueApp::monitor() { auto s = new QLocalServer(this); s->listen(qApp->applicationName()); connect(s, &QLocalServer::newConnection, this, &UniqueApp::anotherInstance); } On Sat, Apr 23, 2016 at 12:37 AM, Jason Kretzer <ja...@gocodigo.com> wrote: > Everyone, > > Anyone know how to prevent multiple instances of an exe to be started? > So, I start bob.exe. I then I try to double click and start bob.exe again > while the first is still running and a second instance does not start (or > at least shuts itself down or does anything other than start another > instance). > > Is there a Qt/C++ on Windows way to do that? > > //------------------------------// > Jason R. Kretzer > Lead Application Developer > ja...@gocodigo.com > //------------------------------// > > “quidquid latine dictum sit altum videtur" > > _______________________________________________ > Interest mailing list > Interest@qt-project.org > http://lists.qt-project.org/mailman/listinfo/interest > > -- Shantanu Tushar (UTC +0530) shantanu.io
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest