解决国产系统按键扫描工具安装完成后下一次打开软件失败的问题;
This commit is contained in:
parent
f07b166326
commit
098bc172a4
|
@ -2,33 +2,39 @@
|
|||
#include <QApplication>
|
||||
#include "base/HGDef.h"
|
||||
#include <QTranslator>
|
||||
#include <QFile>
|
||||
|
||||
#if !defined (HG_CMP_MSC)
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/file.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#include "log/log.h"
|
||||
HLOG g_hLog = nullptr;
|
||||
|
||||
#if defined(OEM_HANWANG)
|
||||
const char* oem = "HanvonScan";
|
||||
const char* oem = "HanvonScan";
|
||||
#elif defined(OEM_LISICHENG)
|
||||
const char* oem = "LanxumScan";
|
||||
const char* oem = "LanxumScan";
|
||||
#elif defined(OEM_CANGTIAN)
|
||||
const char* oem = "CumtennScan";
|
||||
const char* oem = "CumtennScan";
|
||||
#elif defined(OEM_ZHONGJING)
|
||||
const char* oem = "MicrotekScan";
|
||||
const char* oem = "MicrotekScan";
|
||||
#elif defined(OEM_ZIGUANG)
|
||||
const char* oem = "UniScan";
|
||||
const char* oem = "UniScan";
|
||||
#elif defined(OEM_NEUTRAL)
|
||||
const char* oem = "NeuScan";
|
||||
const char* oem = "NeuScan";
|
||||
#elif defined(OEM_DELI)
|
||||
const char* oem = "DeliScan";
|
||||
const char* oem = "DeliScan";
|
||||
#elif defined(OEM_MEISONGDA)
|
||||
const char *oem = "MaxsoundScan";
|
||||
#elif defined(OEM_GUANGDIANTONG)
|
||||
const char *oem = "ToecScan";
|
||||
#else
|
||||
const char* oem = "HuaGoScan";
|
||||
const char* oem = "HuaGoScan";
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
@ -46,22 +52,18 @@ int main(int argc, char *argv[])
|
|||
return -1;
|
||||
}
|
||||
#else
|
||||
const QString lockFilePath = "/tmp/HGScanTool.lock";
|
||||
QFile lockFile(lockFilePath);
|
||||
const char* lockFilePath = "/tmp/HGScanTool.lock";
|
||||
int fd = open(lockFilePath, O_RDONLY | O_CREAT, 666);
|
||||
chmod(lockFilePath, 666);
|
||||
|
||||
if (!lockFile.open(QIODevice::ReadWrite | QIODevice::Unbuffered))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int fd = lockFile.handle();
|
||||
struct flock lock;
|
||||
lock.l_type = F_WRLCK;
|
||||
lock.l_type = F_RDLCK;
|
||||
lock.l_whence = SEEK_SET;
|
||||
lock.l_start = 0;
|
||||
lock.l_len = 0;
|
||||
if (fcntl(fd, F_SETLK, &lock) == -1)
|
||||
{
|
||||
lockFile.close();
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
@ -85,7 +87,8 @@ int main(int argc, char *argv[])
|
|||
#else
|
||||
lock.l_type = F_UNLCK;
|
||||
fcntl(fd, F_SETLK, &lock);
|
||||
lockFile.close();
|
||||
close(fd);
|
||||
unlink(lockFilePath);
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue