查看完整版本: [-- zhengtianzuo系列-Qt单实例进程 --]

QTCN开发网 -> Qt代码秀 -> zhengtianzuo系列-Qt单实例进程 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

zhengtianzuo 2018-01-25 17:26

zhengtianzuo系列-Qt单实例进程

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

jing105630 2018-06-30 09:27

big_mouse 2020-04-23 09:11


查看完整版本: [-- zhengtianzuo系列-Qt单实例进程 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled