您现在的位置是:主页 > news > 网站开发java 开源/个人网站seo入门
网站开发java 开源/个人网站seo入门
admin2025/4/21 12:17:13【news】
简介网站开发java 开源,个人网站seo入门,国网电子商务平台官网,怎样做音视频宣传网站当一个临时文件被创建时,当应用程序关闭时清除这个临时文件。因此,在应用程序的第二个实例启动时检查该文件是否已经创建了一个打开的应用程序实例,如果这个文件存在那么第二个就可以不启动了。 #include <QtNetwork/QLocalSocket> #…
当一个临时文件被创建时,当应用程序关闭时清除这个临时文件。因此,在应用程序的第二个实例启动时检查该文件是否已经创建了一个打开的应用程序实例,如果这个文件存在那么第二个就可以不启动了。
#include <QtNetwork/QLocalSocket>
#include "SingleApplication.h"
SingleApplication::SingleApplication(int &argc, char *argv[], const QString &uniqueKey) : QApplication(argc, argv),
m_isRunning(false),
m_lockfile(new QLockFile(uniqueKey)),
m_localServer(NULL)
{
if (m_lockfile->tryLock() == false) {
m_isRunning = 1;
} else {
m_isRunning = 0;
}
}
SingleApplication::~SingleApplication()
{
releaseLock();
}
// public slots.
void SingleApplication::receiveMessage()
{
QLocalSocket *localSocket = m_localServer->nextPendingConnection();
if ( !localSocket->waitForReadyRead(m_timeout) )
{
qDebug( "%s",localSocket->errorString().toStdString().c_str() );
return;
}
QByteArray byteArray = localSocket->readAll();
QString message = QString::fromUtf8( byteArray.constData() );
emit messageAvailable(message);
localSocket->disconnectFromServer();
}
// public functions.
bool SingleApplication::isRunning()
{
return m_isRunning;
}
bool SingleApplication::sendMessage(const QString &message)
{
if (!m_isRunning)
return false;
QLocalSocket localSocket(this);
localSocket.connectToServer(m_uniqueKey, QIODevice::WriteOnly);
if ( !localSocket.waitForConnected(m_timeout) )
{
qDebug( "%s",localSocket.errorString().toStdString().c_str() );
return false;
}
localSocket.write( message.toUtf8() );
if ( !localSocket.waitForBytesWritten(m_timeout) )
{
qDebug( "%s",localSocket.errorString().toStdString().c_str() );
return false;
}
localSocket.disconnectFromServer();
return true;
}
void SingleApplication::releaseLock()
{
if (m_lockfile->isLocked()) {
m_lockfile->unlock();
}
}