一、构造思路
利用QLocalServer创建本地服务器,QLocalSocket本地套接字进行通信。如果连接失败,则表示第一个实例进程,否则进行退出。
二、主要代码
#include "singleapplication.h"
SingleApplication::SingleApplication(int argc, char **argv)
: QApplication(argc, argv),
bRunning(false)
{
QCoreApplication::setApplicationName("application");
QCoreApplication::setApplicationVersion("VERSION_STRING");
QCoreApplication::setOrganizationName("123");
QCoreApplication::setOrganizationDomain("http://www.123.com/");
QString strServerName = QCoreApplication::organizationName() + QCoreApplication::applicationName();
QLocalSocket socket;
socket.connectToServer(strServerName);
if (socket.waitForConnected(500)){
QTextStream stream(&socket);
QStringList args = QCoreApplication::arguments();
QString strArg = (args.count() > 1) ? args.last() : "";
stream << strArg;