Installer: Add global mutex to find running instance.

This commit is contained in:
Nodir Temirkhodjaev 2017-09-11 16:17:27 +05:00
parent 85fd86c1cb
commit 51e7fc4d2c
5 changed files with 15 additions and 2 deletions

View File

@ -9,6 +9,7 @@
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppMutex={#APP_NAME}
AppName={#APP_NAME}
AppVersion={#APP_VERSION_STR}
AppVerName={#APP_NAME}

View File

@ -1,7 +1,6 @@
#include "fortcommon.h"
#define _WIN32_WINNT 0x0600
#define _WIN32_WINNT 0x0600
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winioctl.h>

View File

@ -5,9 +5,12 @@
#include "fortcommon.h"
#include "fortmanager.h"
#include "fortsettings.h"
#include "util/osutil.h"
int main(int argc, char *argv[])
{
OsUtil::createGlobalMutex(APP_NAME);
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QApplication app(argc, argv);

View File

@ -5,6 +5,9 @@
#include <QPixmap>
#include <QImage>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "processinfo.h"
OsUtil::OsUtil(QObject *parent) :
@ -33,3 +36,8 @@ QString OsUtil::pidToDosPath(quint32 pid)
const ProcessInfo pi(pid);
return pi.dosPath();
}
bool OsUtil::createGlobalMutex(const char *name)
{
return !CreateMutexA(NULL, FALSE, name);
}

View File

@ -14,6 +14,8 @@ public:
Q_INVOKABLE static void setClipboardData(const QVariant &data);
Q_INVOKABLE static QString pidToDosPath(quint32 pid);
static bool createGlobalMutex(const char *name);
};
#endif // OSUTIL_H