去掉HGUpgrade工程的OEM宏

This commit is contained in:
luoliangyi 2023-04-13 17:31:39 +08:00
parent 7475ef902b
commit 29522a0395
6 changed files with 132 additions and 125 deletions

View File

@ -4062,6 +4062,7 @@ void MainWindow::upgradeApp(QString pkgPath)
QStringList argList; QStringList argList;
argList.push_back(QString("-appName=%1").arg(HGVERSION_APPNAME_SCANNER)); argList.push_back(QString("-appName=%1").arg(HGVERSION_APPNAME_SCANNER));
argList.push_back(QString("-oemName=%1").arg(m_oemName));
argList.push_back(QString("-pkgpath=%1").arg(pkgPath.toStdString().c_str())); argList.push_back(QString("-pkgpath=%1").arg(pkgPath.toStdString().c_str()));
argList.push_back(QString("-type=%1").arg("upgrade")); argList.push_back(QString("-type=%1").arg("upgrade"));
argList.push_back(QString("-language=%1").arg(m_currLang.toStdString().c_str())); argList.push_back(QString("-language=%1").arg(m_currLang.toStdString().c_str()));

View File

@ -8,27 +8,27 @@
#include <psapi.h> #include <psapi.h>
#endif #endif
bool AppIsRun(const std::string& appName) bool AppIsRun(const HGChar *appName, const HGChar* oemName)
{ {
if (appName == HGVERSION_APPNAME_SCANNER) if (0 == strcmp(appName, HGVERSION_APPNAME_SCANNER))
{ {
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
std::wstring appPath; std::wstring appPath;
std::wstring regName;
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
std::wstring regName = L"SOFTWARE\\HanvonScan"; regName = L"SOFTWARE\\HanvonScan";
#elif defined(OEM_LISICHENG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
std::wstring regName = L"SOFTWARE\\LanxumScan"; regName = L"SOFTWARE\\LanxumScan";
#elif defined(OEM_CANGTIAN) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
std::wstring regName = L"SOFTWARE\\CumtennScan"; regName = L"SOFTWARE\\CumtennScan";
#elif defined(OEM_ZHONGJING) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
std::wstring regName = L"SOFTWARE\\MicrotekScan"; regName = L"SOFTWARE\\MicrotekScan";
#elif defined(OEM_ZIGUANG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
std::wstring regName = L"SOFTWARE\\UniScan"; regName = L"SOFTWARE\\UniScan";
#else else
std::wstring regName = L"SOFTWARE\\HuaGoScan"; regName = L"SOFTWARE\\HuaGoScan";
#endif
HKEY hKey = nullptr; HKEY hKey = nullptr;
RegOpenKeyExW(HKEY_LOCAL_MACHINE, regName.c_str(), 0, KEY_QUERY_VALUE, &hKey); RegOpenKeyExW(HKEY_LOCAL_MACHINE, regName.c_str(), 0, KEY_QUERY_VALUE, &hKey);
@ -99,47 +99,69 @@ bool AppIsRun(const std::string& appName)
printf("osName=%s\n", osName.c_str()); printf("osName=%s\n", osName.c_str());
if (osName.find("UnionTech") != std::string::npos) if (osName.find("UnionTech") != std::string::npos)
{ {
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
cmd = "ps -wef | grep HanvonScan"; {
appPath = "/opt/apps/com.hanvonchina.hanvonscan/files/bin/HanvonScan"; cmd = "ps -wef | grep HanvonScan";
#elif defined(OEM_LISICHENG) appPath = "/opt/apps/com.hanvonchina.hanvonscan/files/bin/HanvonScan";
cmd = "ps -wef | grep LanxumScan"; }
appPath = "/opt/apps/com.lanxumchina.lanxumscan/files/bin/LanxumScan"; else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
#elif defined(OEM_CANGTIAN) {
cmd = "ps -wef | grep CumtennScan"; cmd = "ps -wef | grep LanxumScan";
appPath = "/opt/apps/com.cumtennchina.cumtennscan/files/bin/CumtennScan"; appPath = "/opt/apps/com.lanxumchina.lanxumscan/files/bin/LanxumScan";
#elif defined(OEM_ZHONGJING) }
cmd = "ps -wef | grep MicrotekScan"; else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
appPath = "/opt/apps/com.microtekchina.microtekscan-ex/files/bin/MicrotekScan"; {
#elif defined(OEM_ZIGUANG) cmd = "ps -wef | grep CumtennScan";
cmd = "ps -wef | grep UniScan"; appPath = "/opt/apps/com.cumtennchina.cumtennscan/files/bin/CumtennScan";
appPath = "/opt/apps/com.unischina.uniscan/files/bin/UniScan"; }
#else else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
cmd = "ps -wef | grep HuaGoScan"; {
appPath = "/opt/apps/com.huagaochina.huagoscan/files/bin/HuaGoScan"; cmd = "ps -wef | grep MicrotekScan";
#endif appPath = "/opt/apps/com.microtekchina.microtekscan-ex/files/bin/MicrotekScan";
}
else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
{
cmd = "ps -wef | grep UniScan";
appPath = "/opt/apps/com.unischina.uniscan/files/bin/UniScan";
}
else
{
cmd = "ps -wef | grep HuaGoScan";
appPath = "/opt/apps/com.huagaochina.huagoscan/files/bin/HuaGoScan";
}
} }
else else
{ {
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
cmd = "ps -wef | grep HanvonScan"; {
appPath = "/opt/apps/scanner-driver-hanvon/bin/HanvonScan"; cmd = "ps -wef | grep HanvonScan";
#elif defined(OEM_LISICHENG) appPath = "/opt/apps/scanner-driver-hanvon/bin/HanvonScan";
cmd = "ps -wef | grep LanxumScan"; }
appPath = "/opt/apps/scanner-driver-lanxum/bin/LanxumScan"; else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
#elif defined(OEM_CANGTIAN) {
cmd = "ps -wef | grep CumtennScan"; cmd = "ps -wef | grep LanxumScan";
appPath = "/opt/apps/scanner-driver-cumtenn/bin/CumtennScan"; appPath = "/opt/apps/scanner-driver-lanxum/bin/LanxumScan";
#elif defined(OEM_ZHONGJING) }
cmd = "ps -wef | grep MicrotekScan"; else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
appPath = "/opt/apps/scanner-driver-microtek-ex/bin/MicrotekScan"; {
#elif defined(OEM_ZIGUANG) cmd = "ps -wef | grep CumtennScan";
cmd = "ps -wef | grep UniScan"; appPath = "/opt/apps/scanner-driver-cumtenn/bin/CumtennScan";
appPath = "/opt/apps/scanner-driver-unis/bin/UniScan"; }
#else else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
cmd = "ps -wef | grep HuaGoScan"; {
appPath = "/opt/apps/scanner-driver-huagao/bin/HuaGoScan"; cmd = "ps -wef | grep MicrotekScan";
#endif appPath = "/opt/apps/scanner-driver-microtek-ex/bin/MicrotekScan";
}
else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
{
cmd = "ps -wef | grep UniScan";
appPath = "/opt/apps/scanner-driver-unis/bin/UniScan";
}
else
{
cmd = "ps -wef | grep HuaGoScan";
appPath = "/opt/apps/scanner-driver-huagao/bin/HuaGoScan";
}
} }
bool ret = false; bool ret = false;
@ -167,27 +189,27 @@ bool AppIsRun(const std::string& appName)
return false; return false;
} }
void RunApp(const std::string& appName) void RunApp(const HGChar *appName, const HGChar* oemName)
{ {
if (appName == HGVERSION_APPNAME_SCANNER) if (0 == strcmp(appName, HGVERSION_APPNAME_SCANNER))
{ {
#if defined(HG_CMP_MSC) #if defined(HG_CMP_MSC)
std::wstring appPath; std::wstring appPath;
std::wstring regName;
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
std::wstring regName = L"SOFTWARE\\HanvonScan"; regName = L"SOFTWARE\\HanvonScan";
#elif defined(OEM_LISICHENG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
std::wstring regName = L"SOFTWARE\\LanxumScan"; regName = L"SOFTWARE\\LanxumScan";
#elif defined(OEM_CANGTIAN) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
std::wstring regName = L"SOFTWARE\\CumtennScan"; regName = L"SOFTWARE\\CumtennScan";
#elif defined(OEM_ZHONGJING) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
std::wstring regName = L"SOFTWARE\\MicrotekScan"; regName = L"SOFTWARE\\MicrotekScan";
#elif defined(OEM_ZIGUANG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
std::wstring regName = L"SOFTWARE\\UniScan"; regName = L"SOFTWARE\\UniScan";
#else else
std::wstring regName = L"SOFTWARE\\HuaGoScan"; regName = L"SOFTWARE\\HuaGoScan";
#endif
HKEY hKey = nullptr; HKEY hKey = nullptr;
RegOpenKeyExW(HKEY_LOCAL_MACHINE, regName.c_str(), 0, KEY_QUERY_VALUE, &hKey); RegOpenKeyExW(HKEY_LOCAL_MACHINE, regName.c_str(), 0, KEY_QUERY_VALUE, &hKey);
@ -224,35 +246,33 @@ void RunApp(const std::string& appName)
printf("osName=%s\n", osName.c_str()); printf("osName=%s\n", osName.c_str());
if (osName.find("UnionTech") != std::string::npos) if (osName.find("UnionTech") != std::string::npos)
{ {
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
appPath = "sh /opt/apps/com.hanvonchina.hanvonscan/files/bin/HanvonScan.sh &"; appPath = "sh /opt/apps/com.hanvonchina.hanvonscan/files/bin/HanvonScan.sh &";
#elif defined(OEM_LISICHENG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
appPath = "sh /opt/apps/com.lanxumchina.lanxumscan/files/bin/LanxumScan.sh &"; appPath = "sh /opt/apps/com.lanxumchina.lanxumscan/files/bin/LanxumScan.sh &";
#elif defined(OEM_CANGTIAN) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
appPath = "sh /opt/apps/com.cumtennchina.cumtennscan/files/bin/CumtennScan.sh &"; appPath = "sh /opt/apps/com.cumtennchina.cumtennscan/files/bin/CumtennScan.sh &";
#elif defined(OEM_ZHONGJING) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
appPath = "sh /opt/apps/com.microtekchina.microtekscan-ex/files/bin/MicrotekScan.sh &"; appPath = "sh /opt/apps/com.microtekchina.microtekscan-ex/files/bin/MicrotekScan.sh &";
#elif defined(OEM_ZIGUANG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
appPath = "sh /opt/apps/com.unischina.uniscan/files/bin/UniScan.sh &"; appPath = "sh /opt/apps/com.unischina.uniscan/files/bin/UniScan.sh &";
#else else
appPath = "sh /opt/apps/com.huagaochina.huagoscan/files/bin/HuaGoScan.sh &"; appPath = "sh /opt/apps/com.huagaochina.huagoscan/files/bin/HuaGoScan.sh &";
#endif
} }
else else
{ {
#if defined(OEM_HANWANG) if (0 == strcmp(oemName, HGVERSION_OEMNAME_HANVON))
appPath = "sh /opt/apps/scanner-driver-hanvon/bin/HanvonScan.sh &"; appPath = "sh /opt/apps/scanner-driver-hanvon/bin/HanvonScan.sh &";
#elif defined(OEM_LISICHENG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_LANXUM))
appPath = "sh /opt/apps/scanner-driver-lanxum/bin/LanxumScan.sh &"; appPath = "sh /opt/apps/scanner-driver-lanxum/bin/LanxumScan.sh &";
#elif defined(OEM_CANGTIAN) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_CUMTENN))
appPath = "sh /opt/apps/scanner-driver-cumtenn/bin/CumtennScan.sh &"; appPath = "sh /opt/apps/scanner-driver-cumtenn/bin/CumtennScan.sh &";
#elif defined(OEM_ZHONGJING) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_MICROTEK))
appPath = "sh /opt/apps/scanner-driver-microtek-ex/bin/MicrotekScan.sh &"; appPath = "sh /opt/apps/scanner-driver-microtek-ex/bin/MicrotekScan.sh &";
#elif defined(OEM_ZIGUANG) else if (0 == strcmp(oemName, HGVERSION_OEMNAME_UNIS))
appPath = "sh /opt/apps/scanner-driver-unis/bin/UniScan.sh &"; appPath = "sh /opt/apps/scanner-driver-unis/bin/UniScan.sh &";
#else else
appPath = "sh /opt/apps/scanner-driver-huagao/bin/HuaGoScan.sh &"; appPath = "sh /opt/apps/scanner-driver-huagao/bin/HuaGoScan.sh &";
#endif
} }
system(appPath.c_str()); system(appPath.c_str());

View File

@ -1,12 +1,13 @@
#ifndef __HGUPGRADE_H__ #ifndef __HGUPGRADE_H__
#define __HGUPGRADE_H__ #define __HGUPGRADE_H__
#include "base/HGDef.h"
#include <string> #include <string>
// 判断app是否在运行 // 判断app是否在运行
bool AppIsRun(const std::string& appName); bool AppIsRun(const HGChar *appName, const HGChar* oemName);
// 运行app // 运行app
void RunApp(const std::string& appName); void RunApp(const HGChar *appName, const HGChar* oemName);
#endif /* __HGUPGRADE_H__ */ #endif /* __HGUPGRADE_H__ */

View File

@ -13,6 +13,7 @@ int main(int argc, char *argv[])
{ {
std::string type; std::string type;
std::string appName; std::string appName;
std::string oemName;
std::string desc; std::string desc;
std::string pkgPath; std::string pkgPath;
std::string appLang; std::string appLang;
@ -25,6 +26,8 @@ int main(int argc, char *argv[])
type = z + strlen("-type="); type = z + strlen("-type=");
else if (z == strstr(z, "-appName=")) else if (z == strstr(z, "-appName="))
appName = z + strlen("-appName="); appName = z + strlen("-appName=");
else if (z == strstr(z, "-oemName="))
oemName = z + strlen("-oemName=");
else if (z == strstr(z, "-desc=")) else if (z == strstr(z, "-desc="))
desc = z + strlen("-desc="); desc = z + strlen("-desc=");
else if (z == strstr(z, "-pkgpath=")) else if (z == strstr(z, "-pkgpath="))
@ -38,48 +41,32 @@ int main(int argc, char *argv[])
appLang = "chinese"; appLang = "chinese";
} }
const HGChar *oemName = nullptr; if ("postinstallinfo" == type && !appName.empty() && !oemName.empty())
#if defined(OEM_HANWANG)
oemName = HGVERSION_OEMNAME_HANVON;
#elif defined(OEM_LISICHENG)
oemName = HGVERSION_OEMNAME_LANXUM;
#elif defined(OEM_CANGTIAN)
oemName = HGVERSION_OEMNAME_CUMTENN;
#elif defined(OEM_ZHONGJING)
oemName = HGVERSION_OEMNAME_MICROTEK;
#elif defined(OEM_ZIGUANG)
oemName = HGVERSION_OEMNAME_UNIS;
#else
oemName = HGVERSION_OEMNAME_HUAGO;
#endif
if ("postinstallinfo" == type && !appName.empty())
{ {
HGVersionMgr mgr = nullptr; HGVersionMgr mgr = nullptr;
HGVersion_CreateMgr(&mgr); HGVersion_CreateMgr(&mgr);
if (nullptr != mgr) if (nullptr != mgr)
{ {
HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName, desc.c_str()); HGVersion_PostInstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str());
HGVersion_DestroyMgr(mgr); HGVersion_DestroyMgr(mgr);
} }
} }
else if ("postuninstallinfo" == type && !appName.empty()) else if ("postuninstallinfo" == type && !appName.empty() && !oemName.empty())
{ {
HGVersionMgr mgr = nullptr; HGVersionMgr mgr = nullptr;
HGVersion_CreateMgr(&mgr); HGVersion_CreateMgr(&mgr);
if (nullptr != mgr) if (nullptr != mgr)
{ {
HGVersion_PostUninstallInfo(mgr, appName.c_str(), oemName, desc.c_str()); HGVersion_PostUninstallInfo(mgr, appName.c_str(), oemName.c_str(), desc.c_str());
HGVersion_DestroyMgr(mgr); HGVersion_DestroyMgr(mgr);
} }
} }
else if ("upgrade" == type && !appName.empty() && !pkgPath.empty()) else if ("upgrade" == type && !appName.empty() && !oemName.empty() && !pkgPath.empty())
{ {
QApplication a(argc, argv); QApplication a(argc, argv);
while (AppIsRun(appName)) while (AppIsRun(appName.c_str(), oemName.c_str()))
QThread::msleep(20); QThread::msleep(20);
QString translator_upgrade_name = ":translation/Upgrade_zh_CN.qm"; QString translator_upgrade_name = ":translation/Upgrade_zh_CN.qm";
@ -92,7 +79,7 @@ int main(int argc, char *argv[])
if (translator_upgrade.load(translator_upgrade_name)) if (translator_upgrade.load(translator_upgrade_name))
a.installTranslator(&translator_upgrade); a.installTranslator(&translator_upgrade);
MainWindow w(appName, pkgPath); MainWindow w(pkgPath);
QScreen *screen = QGuiApplication::primaryScreen(); QScreen *screen = QGuiApplication::primaryScreen();
w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2); w.move((screen->size().width() - w.width()) / 2, (screen->size().height() - w.height()) / 2);
w.show(); w.show();
@ -105,8 +92,8 @@ int main(int argc, char *argv[])
QMessageBox::Ok); QMessageBox::Ok);
msg.exec(); msg.exec();
if (!AppIsRun(appName)) if (!AppIsRun(appName.c_str(), oemName.c_str()))
RunApp(appName); RunApp(appName.c_str(), oemName.c_str());
} }
else else
{ {

View File

@ -11,10 +11,9 @@
#include <tlhelp32.h> #include <tlhelp32.h>
#endif #endif
MainWindow::MainWindow(const std::string &appName, const std::string& pkgPath, QWidget *parent) MainWindow::MainWindow(const std::string& pkgPath, QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
, ui(new Ui::MainWindow) , ui(new Ui::MainWindow)
, m_appName(appName)
, m_pkgPath(pkgPath) , m_pkgPath(pkgPath)
, m_thread(nullptr) , m_thread(nullptr)
, m_success(false) , m_success(false)

View File

@ -13,7 +13,7 @@ class MainWindow : public QMainWindow
Q_OBJECT Q_OBJECT
public: public:
MainWindow(const std::string &appName, const std::string &pkgPath, QWidget *parent = nullptr); MainWindow(const std::string &pkgPath, QWidget *parent = nullptr);
~MainWindow(); ~MainWindow();
bool isInstallSuccess(); bool isInstallSuccess();
@ -29,7 +29,6 @@ private:
private: private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
std::string m_appName;
std::string m_pkgPath; std::string m_pkgPath;
HGThread m_thread; HGThread m_thread;
bool m_success; bool m_success;