48 lines
1.6 KiB
C++
48 lines
1.6 KiB
C++
#include <QApplication>
|
|
#include <MainWindow.h>
|
|
#include "common.h"
|
|
|
|
int main(int argc, char *argv[]) {
|
|
QApplication a(argc, argv);
|
|
|
|
QDir dir("shared_key.txt");
|
|
QByteArray line;
|
|
QFile file("shared_key.txt");
|
|
while(!file.exists())
|
|
{
|
|
dir.mkdir("shared_key.txt");//只创建一级子目录,即必须保证上级目录存在
|
|
file.open(QIODevice::WriteOnly|QIODevice::Text);
|
|
QDateTime current_date_time =QDateTime::currentDateTime();
|
|
QString current_date =current_date_time.toString("hh:mm:ss.zzz");//将时间做为key值写入文件一次
|
|
file.write(current_date.toUtf8());
|
|
file.close();
|
|
break;
|
|
}
|
|
file.open(QIODevice::ReadOnly);
|
|
line=file.readLine();
|
|
file.close();
|
|
QString const key=line;
|
|
QSharedMemory shared_memory;
|
|
shared_memory.setKey(key);//设置固定共享内存段的key值
|
|
if (shared_memory.attach()) //尝试将进程附加到该共享内存段
|
|
{
|
|
QMessageBox messageBox(QMessageBox::Warning,QString::fromUtf8("提示"),QString::QString::fromUtf8("当前程序正在运行中..."));
|
|
messageBox.setButtonText(QMessageBox::Ok,QString::QString::fromUtf8("确认!"));
|
|
messageBox.exec();
|
|
return 0;
|
|
}
|
|
|
|
MatrixAILog::Log::SetLogLevel("DEBUG");
|
|
|
|
if(shared_memory.create(1)) //创建1byte的共享内存段
|
|
{
|
|
SetConsoleOutputCP(CP_UTF8);
|
|
QApplication::setWindowIcon(QIcon("./logo.ico"));
|
|
MainWindow w;
|
|
w.show();
|
|
|
|
return QApplication::exec();
|
|
}
|
|
return QApplication::exec();
|
|
}
|