mirror of
https://github.com/tnodir/fort
synced 2024-11-15 06:35:23 +00:00
Installer: Add global setup mutex.
This commit is contained in:
parent
98a5bd8667
commit
7beb143270
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
#include SRC_PATH + "\version\fort_version.h"
|
#include SRC_PATH + "\version\fort_version.h"
|
||||||
|
|
||||||
#define APP_EXE_NAME "FortFirewall.exe"
|
#define APP_EXE_NAME APP_BASE + ".exe"
|
||||||
#define APP_ICO_NAME "FortFirewall.ico"
|
#define APP_ICO_NAME APP_BASE + ".ico"
|
||||||
|
|
||||||
#define APP_EXE StringChange("{app}\%exe%", "%exe%", APP_EXE_NAME)
|
#define APP_EXE StringChange("{app}\%exe%", "%exe%", APP_EXE_NAME)
|
||||||
|
|
||||||
@ -12,7 +12,8 @@
|
|||||||
; NOTE: The value of AppId uniquely identifies this application.
|
; NOTE: The value of AppId uniquely identifies this application.
|
||||||
; Do not use the same AppId value in installers for other applications.
|
; Do not use the same AppId value in installers for other applications.
|
||||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||||
AppMutex={#APP_NAME}
|
SetupMutex=Global\Setup{#APP_BASE}
|
||||||
|
AppMutex={#APP_NAME},{#APP_BASE},Global\{#APP_BASE}
|
||||||
AppName={#APP_NAME}
|
AppName={#APP_NAME}
|
||||||
AppVersion={#APP_VERSION_STR}
|
AppVersion={#APP_VERSION_STR}
|
||||||
VersionInfoVersion={#APP_VERSION_STR}
|
VersionInfoVersion={#APP_VERSION_STR}
|
||||||
@ -27,7 +28,7 @@ DefaultDirName={pf32}\{#APP_NAME}
|
|||||||
AlwaysShowDirOnReadyPage=yes
|
AlwaysShowDirOnReadyPage=yes
|
||||||
AlwaysShowGroupOnReadyPage=yes
|
AlwaysShowGroupOnReadyPage=yes
|
||||||
AllowNoIcons=yes
|
AllowNoIcons=yes
|
||||||
OutputBaseFilename=FortFirewall-{#APP_VERSION_STR}
|
OutputBaseFilename={#APP_BASE}-{#APP_VERSION_STR}
|
||||||
Uninstallable=not IsTaskSelected('portable')
|
Uninstallable=not IsTaskSelected('portable')
|
||||||
UninstallFilesDir={app}\uninst
|
UninstallFilesDir={app}\uninst
|
||||||
UninstallDisplayIcon={uninstallexe}
|
UninstallDisplayIcon={uninstallexe}
|
||||||
@ -47,7 +48,7 @@ Name: "portable"; Description: "Portable"; Flags: unchecked
|
|||||||
|
|
||||||
[Files]
|
[Files]
|
||||||
Source: "build\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
Source: "build\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
|
||||||
Source: "FortFirewall.exe.example.ini"; DestDir: "{app}"
|
Source: "{#APP_EXE_NAME}.example.ini"; DestDir: "{app}"
|
||||||
Source: "README.portable"; DestDir: "{app}"; Tasks: portable
|
Source: "README.portable"; DestDir: "{app}"; Tasks: portable
|
||||||
|
|
||||||
[Registry]
|
[Registry]
|
||||||
|
@ -9,13 +9,13 @@
|
|||||||
#define VER_PRODUCTVERSION_STR APP_VERSION_STR
|
#define VER_PRODUCTVERSION_STR APP_VERSION_STR
|
||||||
|
|
||||||
#define VER_COMPANYNAME_STR APP_PUBLISHER
|
#define VER_COMPANYNAME_STR APP_PUBLISHER
|
||||||
#define VER_FILEDESCRIPTION_STR "Fort Firewall"
|
#define VER_FILEDESCRIPTION_STR APP_NAME
|
||||||
#define VER_INTERNALNAME_STR "FortFirewall"
|
#define VER_INTERNALNAME_STR APP_BASE
|
||||||
#define VER_LEGALCOPYRIGHT_STR APP_LEGALCOPYRIGHT
|
#define VER_LEGALCOPYRIGHT_STR APP_LEGALCOPYRIGHT
|
||||||
#define VER_LEGALTRADEMARKS1_STR ""
|
#define VER_LEGALTRADEMARKS1_STR ""
|
||||||
#define VER_LEGALTRADEMARKS2_STR ""
|
#define VER_LEGALTRADEMARKS2_STR ""
|
||||||
#define VER_ORIGINALFILENAME_STR "FortFirewall.exe"
|
#define VER_ORIGINALFILENAME_STR "FortFirewall.exe"
|
||||||
#define VER_PRODUCTNAME_STR "Fort Firewall"
|
#define VER_PRODUCTNAME_STR APP_NAME
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define VER_DEBUG (VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE|VS_FF_DEBUG)
|
#define VER_DEBUG (VS_FF_PRIVATEBUILD|VS_FF_PRERELEASE|VS_FF_DEBUG)
|
||||||
|
@ -51,7 +51,7 @@ int FortSettings::appVersion() const
|
|||||||
void FortSettings::setupGlobal()
|
void FortSettings::setupGlobal()
|
||||||
{
|
{
|
||||||
// Use global settings from program's working directory.
|
// Use global settings from program's working directory.
|
||||||
const QSettings settings("FortFirewall.exe.ini", QSettings::IniFormat);
|
const QSettings settings(APP_BASE ".exe.ini", QSettings::IniFormat);
|
||||||
|
|
||||||
// High-DPI scale factor rounding policy
|
// High-DPI scale factor rounding policy
|
||||||
const auto dpiPolicy = settings.value("global/dpiPolicy").toString();
|
const auto dpiPolicy = settings.value("global/dpiPolicy").toString();
|
||||||
@ -186,7 +186,7 @@ void FortSettings::processArguments(const QStringList &args, EnvManager *envMana
|
|||||||
|
|
||||||
void FortSettings::setupIni()
|
void FortSettings::setupIni()
|
||||||
{
|
{
|
||||||
const QString iniPath(profilePath() + "FortFirewall.ini");
|
const QString iniPath(profilePath() + (APP_BASE ".ini"));
|
||||||
|
|
||||||
FileUtil::makePath(profilePath());
|
FileUtil::makePath(profilePath());
|
||||||
FileUtil::makePath(statPath());
|
FileUtil::makePath(statPath());
|
||||||
@ -211,12 +211,12 @@ void FortSettings::setErrorMessage(const QString &errorMessage)
|
|||||||
|
|
||||||
QString FortSettings::statFilePath() const
|
QString FortSettings::statFilePath() const
|
||||||
{
|
{
|
||||||
return statPath() + QLatin1String("FortFirewall.stat");
|
return statPath() + (APP_BASE ".stat");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FortSettings::confFilePath() const
|
QString FortSettings::confFilePath() const
|
||||||
{
|
{
|
||||||
return profilePath() + QLatin1String("FortFirewall.config");
|
return profilePath() + (APP_BASE ".config");
|
||||||
}
|
}
|
||||||
|
|
||||||
void FortSettings::readConfIni(FirewallConf &conf) const
|
void FortSettings::readConfIni(FirewallConf &conf) const
|
||||||
|
@ -60,7 +60,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
#ifdef APP_SINGLE_INSTANCE
|
#ifdef APP_SINGLE_INSTANCE
|
||||||
// Check running instance
|
// Check running instance
|
||||||
if (!OsUtil::createGlobalMutex(APP_NAME)) {
|
if (!OsUtil::createGlobalMutex(APP_BASE)) {
|
||||||
QMessageBox::critical(nullptr, QString(), "Application is already running!");
|
QMessageBox::critical(nullptr, QString(), "Application is already running!");
|
||||||
return FORT_ERROR_INSTANCE;
|
return FORT_ERROR_INSTANCE;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const char *const serviceName = "FortFirewallSvc";
|
const char *const serviceName = APP_BASE "Svc";
|
||||||
|
|
||||||
const char *const regCurUserRun =
|
const char *const regCurUserRun =
|
||||||
R"(HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)";
|
R"(HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)";
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#define APP_VERSION 0x030400
|
#define APP_VERSION 0x030400
|
||||||
|
|
||||||
#define APP_NAME "Fort Firewall"
|
#define APP_NAME "Fort Firewall"
|
||||||
|
#define APP_BASE "FortFirewall"
|
||||||
#define APP_PUBLISHER "Nodir Temirkhodjaev"
|
#define APP_PUBLISHER "Nodir Temirkhodjaev"
|
||||||
#define APP_LEGALCOPYRIGHT "Copyright (C) 2015-2021 Nodir Temirkhodjaev. All Rights Reserved."
|
#define APP_LEGALCOPYRIGHT "Copyright (C) 2015-2021 Nodir Temirkhodjaev. All Rights Reserved."
|
||||||
#define APP_URL "https://github.com/tnodir/fort"
|
#define APP_URL "https://github.com/tnodir/fort"
|
||||||
|
Loading…
Reference in New Issue
Block a user