mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
App is running already
This commit is contained in:
@@ -51,3 +51,9 @@ target_include_directories(ServerMTD PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../LibIn
|
||||
target_include_directories(ServerMTD PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../LibInstructorsAndTrainees/tasks)
|
||||
target_include_directories(ServerMTD PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../LibInstructorsAndTrainees/widgets)
|
||||
target_include_directories(ServerMTD PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../LibInstructorsAndTrainees/specialmessagebox)
|
||||
if(PROJECT_TYPE_DEBUG)
|
||||
target_link_directories(ServerMTD PUBLIC ${REPO_PATH}/BUILDS/Debug64/LibInstructorsAndTrainees)
|
||||
else()
|
||||
target_link_directories(ServerMTD PUBLIC ${REPO_PATH}/BUILDS/Release64/LibInstructorsAndTrainees)
|
||||
endif()
|
||||
target_link_libraries(ServerMTD PRIVATE libInstructorsAndTrainees.dll)
|
||||
|
||||
@@ -1,10 +1,50 @@
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QApplication>
|
||||
//#include <QMessageBox>
|
||||
#include <QTranslator>
|
||||
#include "specialmessagebox.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
|
||||
|
||||
// Уникальное имя для идентификации процесса
|
||||
const QString sharedMemKey = "ServerMTD_sharedMemKey";
|
||||
|
||||
// Создание объекта общей памяти
|
||||
QSharedMemory sharedMemory(sharedMemKey);
|
||||
|
||||
// Попытка прикрепления к существующему сегменту
|
||||
bool isRunningAlready = false;
|
||||
if (sharedMemory.attach(QSharedMemory::ReadWrite))
|
||||
{
|
||||
qWarning() << "App ServerMTD is running already!";
|
||||
|
||||
QTranslator qtLanguageTranslator;
|
||||
qtLanguageTranslator.load(QString("translations/RRJServer_") + "ru_RU", ".");
|
||||
qApp->installTranslator(&qtLanguageTranslator);
|
||||
//QMessageBox::critical(nullptr, QObject::tr("Error"), QObject::tr("App ServerMTD is running already!"));
|
||||
SpecMsgBox::CriticalClose(nullptr, QObject::tr("App ") + QObject::tr("Maintenance training device RRJ-95NEW-100 Server") + QObject::tr(" is running already!"));
|
||||
isRunningAlready = true;
|
||||
} else
|
||||
{
|
||||
// Приложения ещё нет, создаём сегмент памяти
|
||||
if (!sharedMemory.create(1))
|
||||
{
|
||||
qCritical() << "Error create shared memory!";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (isRunningAlready)
|
||||
return 1;
|
||||
|
||||
// Освобождаем общую память при завершении работы приложения
|
||||
QObject::connect(qApp, &QCoreApplication::aboutToQuit,
|
||||
[&]() { sharedMemory.detach(); });
|
||||
|
||||
MainWindow w;
|
||||
w.show(); //Закоментировать, если нужно, чтобы по-умолчанию было свернуто в трее!
|
||||
return a.exec();
|
||||
|
||||
Reference in New Issue
Block a user