通过socket通讯实现程序单实例运行,
直接上代码
头文件:
#pragma once
#include
#include
#include
class SingleApplication : public QApplication
{
Q_OBJECT
public:
SingleApplication(int& argc, char** argv);
~SingleApplication();
bool isRunning(); // 是否已经有实例在运行
void setMainWindow(QWidget* w);
private slots:
// 有新连接时触发
void slot_NewLocalConnection();
private:
// 初始化本地连接
void InitLocalConnection();
// 创建服务端
void NewLocalServer();
// 激活窗口
void ActivateWindow();
bool m_bRunning; // 实例运行标志
QLocalServer* m_pLocalServer; // 本地socket Server
QString m_strServerName; // 服务名称
QWidget* m_pMainWindow; // MainWindow指针
};
cpp文件
#include
#include
#include “SingleApplication.h”
#include “CECore.h”
constexpr auto TIME_OUT =