• 4110阅读
  • 2回复

zhengtianzuo系列-Qt单实例进程 [复制链接]

上一主题 下一主题
离线zhengtianzuo
 

只看楼主 正序阅读 楼主  发表于: 2018-01-25
Qt实现单实例进程一般有3种方式:
QLocalServer
QSharedMemory
QtSingleApplication

这里主要介绍QLocalServer的方式

启动时尝试连接, 如果连接想相同名称的QLocalServer, 说明程序已经启动了, 退出
```
    //连接LocalServer
    QString serverName = "localserver";
    QLocalSocket socket;
    socket.connectToServer(serverName);
    if(socket.waitForConnected(1000)) return(-1);
```

没有连接的话则创建一个

```
    //创建LocalServer
    QLocalServer server;
    if (server.listen(serverName)){
        if(server.serverError()== QAbstractSocket::AddressInUseError &&
                QFile::exists(server.serverName())){
            QFile::remove(server.serverName());
            server.listen(serverName);
        }
    }
```


需要完整代码请访问 QtOtherExamples
1条评分好评度+1
华子113888 好评度 +1 - 2018-04-04
博客地址: https://blog.csdn.net/zhengtianzuo06
Github: https://github.com/zhengtianzuo
个人产品: https://github.com/zhengtianzuo/Silk
产品网站: http://www.camelstudio.cn
离线big_mouse

只看该作者 2楼 发表于: 2020-04-23
离线jing105630

只看该作者 1楼 发表于: 2018-06-30
快速回复
限100 字节
 
上一个 下一个