37 #include <QSharedMemory>
45 , m_isFirstInstance {!m_peer->isClient()}
50 const QString sharedMemoryKey = instancePath + QLatin1String {
"/shared-memory"};
51 auto sharedMem =
new QSharedMemory {sharedMemoryKey,
this};
55 if (sharedMem->create(
sizeof(DWORD)) && sharedMem->lock())
57 *(
static_cast<DWORD *
>(sharedMem->data())) = ::GetCurrentProcessId();
64 if (sharedMem->attach() && sharedMem->lock())
66 ::AllowSetForegroundWindow(*(
static_cast<DWORD *
>(sharedMem->data())));
71 if (!sharedMem->isAttached())
72 qCritical() <<
"Failed to initialize shared memory: " << sharedMem->errorString();
void messageReceived(const QString &message)
bool isFirstInstance() const
bool sendMessage(const QString &message, int timeout=5000)
ApplicationInstanceManager(const QString &instancePath, QObject *parent=nullptr)
const bool m_isFirstInstance
void messageReceived(const QString &message)
bool sendMessage(const QString &message, int timeout)