From 507ec3ed8495f99fb76f2400a8a0038d598dbb2a Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Wed, 18 Oct 2023 18:56:35 +0800 Subject: [PATCH] =?UTF-8?q?app=E5=8F=AF=E6=89=A7=E8=A1=8C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/scanner2/mainwindow.cpp | 2 +- app/scanner2/resource.h | 16 ++ app/scanner2/resource.rc | 170 +++++++++++++++++++++ build.bat | 64 ++++++-- build2/qt/HGScanner2/HGScanner2.pro | 13 +- tools/hgsetver/Release/hgsetver.exe | Bin 0 -> 131072 bytes tools/hgsetver/hgsetver.cpp | 222 ++++++++++++++++++++++++++++ tools/hgsetver/hgsetver.sln | 31 ++++ tools/hgsetver/hgsetver.vcxproj | 151 +++++++++++++++++++ 9 files changed, 644 insertions(+), 25 deletions(-) create mode 100644 app/scanner2/resource.h create mode 100644 app/scanner2/resource.rc create mode 100644 tools/hgsetver/Release/hgsetver.exe create mode 100644 tools/hgsetver/hgsetver.cpp create mode 100644 tools/hgsetver/hgsetver.sln create mode 100644 tools/hgsetver/hgsetver.vcxproj diff --git a/app/scanner2/mainwindow.cpp b/app/scanner2/mainwindow.cpp index 90165b0b..b1f819a4 100644 --- a/app/scanner2/mainwindow.cpp +++ b/app/scanner2/mainwindow.cpp @@ -3194,7 +3194,7 @@ void MainWindow::on_act_about_triggered() #if defined (OEM_LISICHENG) buildVersion = 14; -#elif defined (OEM_HANWNAG) +#elif defined (OEM_HANWANG) buildVersion = 16; #elif defined (OEM_CANGTIAN) buildVersion = 18; diff --git a/app/scanner2/resource.h b/app/scanner2/resource.h new file mode 100644 index 00000000..f2d4e6d8 --- /dev/null +++ b/app/scanner2/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ 生成的包含文件。 +// 供 HuaGoScan2.rc 使用 +// +#define IDI_ICON1 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/app/scanner2/resource.rc b/app/scanner2/resource.rc new file mode 100644 index 00000000..5d61048c --- /dev/null +++ b/app/scanner2/resource.rc @@ -0,0 +1,170 @@ +// Microsoft Visual C++ generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// 中文(简体,中国) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS) +LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED +#pragma code_page(936) + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +#if defined(OEM_HANWANG) +IDI_ICON1 ICON "image_rsc\\logo\\Hanvon_logo1.ico" +#elif defined(OEM_LISICHENG) +IDI_ICON1 ICON "image_rsc\\logo\\Lanxum_logo.ico" +#elif defined(OEM_CANGTIAN) +IDI_ICON1 ICON "image_rsc\\logo\\Cumtenn_logo.ico" +#elif defined(OEM_ZHONGJING) +IDI_ICON1 ICON "image_rsc\\logo\\Microtek_logo.ico" +#elif defined(OEM_ZIGUANG) +IDI_ICON1 ICON "image_rsc\\logo\\uniscan.ico" +#elif defined(OEM_NEUTRAL) +IDI_ICON1 ICON "image_rsc\\logo\\NoBrand_logo.ico" +#elif defined(OEM_DELI) +IDI_ICON1 ICON "image_rsc\\logo\\deli.ico" +#else +IDI_ICON1 ICON "image_rsc\\logo\\logo.ico" +#endif + +#endif // 中文(简体,中国) resources +///////////////////////////////////////////////////////////////////////////// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 0,0,0,0 + PRODUCTVERSION 0,0,0,0 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L + BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000403a8" + BEGIN + VALUE "FileVersion", "0.0.0.0\0" + VALUE "ProductVersion", "0.0.0.0\0" +#if defined(OEM_HANWANG) + VALUE "ProductName", "HANVONSCAN\0" + VALUE "CompanyName", "汉王科技股份有限公司\0" + VALUE "FileDescription", "汉王扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) HANVONSCAN 2023\0" + VALUE "InternalName", "HanvonScan.exe\0" + VALUE "OriginalFilename", "HanvonScan.exe\0" +#elif defined(OEM_LISICHENG) + VALUE "ProductName", "LANXUMSCAN\0" + VALUE "CompanyName", "立思辰信息科技有限公司\0" + VALUE "FileDescription", "立思辰扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) LANXUMSCAN 2023\0" + VALUE "InternalName", "LanxumScan.exe\0" + VALUE "OriginalFilename", "LanxumScan.exe\0" +#elif defined(OEM_CANGTIAN) + VALUE "ProductName", "CUMTENNSCAN\0" + VALUE "CompanyName", "浙江沧田智能信息科技有限公司\0" + VALUE "FileDescription", "沧田扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) CUMTENNSCAN 2023\0" + VALUE "InternalName", "CumtennScan.exe\0" + VALUE "OriginalFilename", "CumtennScan.exe\0" +#elif defined(OEM_ZHONGJING) + VALUE "ProductName", "MICROTEKSCAN\0" + VALUE "CompanyName", "Microtek DocWizard EX\0" + VALUE "FileDescription", "Microtek DocWizard EX App\0" + VALUE "LegalCopyright", "Copyright (C) MICROTEKSCAN 2023\0" + VALUE "InternalName", "MicrotekScan.exe\0" + VALUE "OriginalFilename", "MicrotekScan.exe\0" +#elif defined(OEM_ZIGUANG) + VALUE "ProductName", "UNISCAN\0" + VALUE "CompanyName", "紫光股份有限公司\0" + VALUE "FileDescription", "紫光扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) UNISCAN 2023\0" + VALUE "InternalName", "UniScan.exe\0" + VALUE "OriginalFilename", "UniScan.exe\0" +#elif defined(OEM_NEUTRAL) + VALUE "ProductName", "SCANNER\0" + VALUE "CompanyName", "Scanner\0" + VALUE "FileDescription", "Scanner\0" + VALUE "LegalCopyright", "Copyright (C) SCANNER 2023\0" + VALUE "InternalName", "NeuScan.exe\0" + VALUE "OriginalFilename", "NeuScan.exe\0" +#elif defined(OEM_DELI) + VALUE "ProductName", "DELISCAN\0" + VALUE "CompanyName", "得力信息科技有限公司\0" + VALUE "FileDescription", "得力扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) DELISCAN 2023\0" + VALUE "InternalName", "DeliScan.exe\0" + VALUE "OriginalFilename", "DeliScan.exe\0" +#else + VALUE "ProductName", "HUAGOSCAN\0" + VALUE "CompanyName", "宁波华高信息科技有限公司\0" + VALUE "FileDescription", "华高扫描仪应用程序\0" + VALUE "LegalCopyright", "Copyright (C) HUAGOSCAN 2023\0" + VALUE "InternalName", "HuaGoScan.exe\0" + VALUE "OriginalFilename", "HuaGoScan.exe\0" +#endif + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0004, 936 + END + END +/* End of Version info */ + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/build.bat b/build.bat index 6404d0a4..bba09445 100644 --- a/build.bat +++ b/build.bat @@ -3,14 +3,18 @@ set OEM=%1 cd /d ./build2/qt if "%OEM%" == "hw" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_HANWANG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_HANWANG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_HANWANG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_HANWANG" -r -tp vc HGTwainUI.pro MSBuild.exe HWTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_HANWANG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_HANWANG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_HANWANG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_HANWANG" -r -tp vc HGTwainUI.pro @@ -18,14 +22,18 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "lsc" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_LISICHENG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_LISICHENG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_LISICHENG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_LISICHENG" -r -tp vc HGTwainUI.pro MSBuild.exe LSCTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_LISICHENG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_LISICHENG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_LISICHENG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_LISICHENG" -r -tp vc HGTwainUI.pro @@ -33,14 +41,18 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "cts" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_CANGTIAN" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_CANGTIAN USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_CANGTIAN MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_CANGTIAN" -r -tp vc HGTwainUI.pro MSBuild.exe CTSTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_CANGTIAN" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_CANGTIAN USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_CANGTIAN MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_CANGTIAN" -r -tp vc HGTwainUI.pro @@ -48,14 +60,18 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "zj" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_ZHONGJING" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_ZHONGJING USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_ZHONGJING MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_ZHONGJING" -r -tp vc HGTwainUI.pro MSBuild.exe ZJTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_ZHONGJING" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_ZHONGJING USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_ZHONGJING MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_ZHONGJING" -r -tp vc HGTwainUI.pro @@ -63,14 +79,18 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "zg" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_ZIGUANG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_ZIGUANG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_ZIGUANG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_ZIGUANG" -r -tp vc HGTwainUI.pro MSBuild.exe ZGTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_ZIGUANG" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_ZIGUANG USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_ZIGUANG MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_ZIGUANG" -r -tp vc HGTwainUI.pro @@ -78,14 +98,18 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "neu" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_NEUTRAL" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_NEUTRAL USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_NEUTRAL MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_NEUTRAL" -r -tp vc HGTwainUI.pro MSBuild.exe NEUTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_NEUTRAL" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_NEUTRAL USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_NEUTRAL MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_NEUTRAL" -r -tp vc HGTwainUI.pro @@ -93,28 +117,36 @@ if "%OEM%" == "hw" ( cd /d ../ ) else ( if "%OEM%" == "dl" ( - %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_DELI" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += OEM_DELI USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 -oemName=OEM_DELI MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_DELI" -r -tp vc HGTwainUI.pro MSBuild.exe DLTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_DELI" -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += OEM_DELI USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -oemName=OEM_DELI MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake "DEFINES += OEM_DELI" -r -tp vc HGTwainUI.pro MSBuild.exe DLTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release cd /d ../ ) else ( - %QT_PATH%/msvc2017_64/bin/qmake -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017_64/bin/qmake "DEFINES += USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc -cpu=x64 MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d HGTwainUI %QT_STATIC_PATH%/x64-windows-static-md/tools/qt5/bin/qmake -r -tp vc HGTwainUI.pro MSBuild.exe HGTwainUI.vcxproj -t:rebuild /m:8 /p:Configuration=Release /p:Platform=x64 cd /d ../ - %QT_PATH%/msvc2017/bin/qmake -r -tp vc HGSolutionWin.pro + %QT_PATH%/msvc2017/bin/qmake "DEFINES += USE_SCRIPT" -r -tp vc HGSolutionWin.pro + cp %~dp0\app\scanner2\resource.rc %~dp0\app\scanner2\resourceTmp.rc + %~dp0\tools\hgsetver\release\hgsetver.exe -brandFile=%~dp0\..\sdk\include\huagao\brand.h -resourceFile=%~dp0\app\scanner2\resourceTmp.rc MSBuild.exe HGSolutionWin.sln -t:rebuild /m:8 /p:Configuration=Release cd /d HGTwainUI %QT_STATIC_PATH%/x86-windows-static-md/tools/qt5/bin/qmake -r -tp vc HGTwainUI.pro diff --git a/build2/qt/HGScanner2/HGScanner2.pro b/build2/qt/HGScanner2/HGScanner2.pro index 2bc1626f..df7c7c10 100644 --- a/build2/qt/HGScanner2/HGScanner2.pro +++ b/build2/qt/HGScanner2/HGScanner2.pro @@ -22,34 +22,26 @@ DEFINES += QT_NO_VERSION_TAGGING include($$PWD/../HGOEM.pri) if (contains(DEFINES, OEM_HANWANG)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/Hanvon_logo1.ico TARGET = HanvonScan2 } else { if (contains(DEFINES, OEM_LISICHENG)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/Lanxum_logo.ico TARGET = LanxumScan2 } else { if (contains(DEFINES, OEM_CANGTIAN)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/Cumtenn_logo.ico TARGET = CumtennScan2 } else { if (contains(DEFINES, OEM_ZHONGJING)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/Microtek_logo.ico TARGET = MicrotekScan2 } else { if (contains(DEFINES, OEM_ZIGUANG)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/uniscan.ico TARGET = UniScan2 } else { if (contains(DEFINES, OEM_NEUTRAL)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/NoBrand_logo.ico TARGET = NeuScan2 } else { if (contains(DEFINES, OEM_DELI)) { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/deli.ico TARGET = "DELI SCAN2" } else { - RC_ICONS = ../../../app/scanner2/image_rsc/logo/logo.ico TARGET = HuaGoScan2 } } @@ -68,6 +60,11 @@ CONFIG(release, debug|release) { win32 { + if (contains(DEFINES, USE_SCRIPT)) { + RC_FILE += ../../../app/scanner2/resourceTmp.rc + } else { + RC_FILE += ../../../app/scanner2/resource.rc + } MY_OS = windows contains(QT_ARCH, i386) { diff --git a/tools/hgsetver/Release/hgsetver.exe b/tools/hgsetver/Release/hgsetver.exe new file mode 100644 index 0000000000000000000000000000000000000000..a1094a04a05c52b67f35a51ec978e8923a31b813 GIT binary patch literal 131072 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

1bOU>?6AJx9TYx|D6QwD4tK*r$XiB?ds6K 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 +#include + +static bool isLeap(int year) +{ + if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) + return true; + return false; +} + +static int getDays(int year, int month) +{ + if (2 == month) + { + if (isLeap(year)) + return 29; + else + return 28; + } + + if (4 == month || 6 == month || 9 == month || 11 == month) + { + return 30; + } + + return 31; +} + +static int getPatchVersion() +{ + SYSTEMTIME st; + GetLocalTime(&st); + + int year = st.wYear; + int day = st.wDay; + int month = st.wMonth; + + int ret = year % 100; + ret *= 1000; + + for (int i = 1; i < month; ++i) + { + ret += getDays(year, i); + } + + ret += day; + return ret; +} + +int main(int argc, char* argv[]) +{ + std::string brandFile; + std::string resourceFile; + std::string oemName = "OEM_HUAGAO"; + std::string cpu = "x86"; + + for (int i = 1; i < argc; i++) + { + char* z = argv[i]; + + if (z == strstr(z, "-brandFile=")) + brandFile = z + strlen("-brandFile="); + else if (z == strstr(z, "-resourceFile=")) + resourceFile = z + strlen("-resourceFile="); + else if (z == strstr(z, "-oemName=")) + oemName = z + strlen("-oemName="); + else if (z == strstr(z, "-cpu=")) + cpu = z + strlen("-cpu="); + } + + printf("brandFile:%s\n", brandFile.c_str()); + printf("resourceFile:%s\n", resourceFile.c_str()); + printf("oemName:%s\n", oemName.c_str()); + printf("cpu:%s\n", cpu.c_str()); + + if (brandFile.empty() || resourceFile.empty()) + { + return -1; + } + + int mainVersion = 0; + int subVersion = 0; + int buildVersion = 0; + int patchVersion = 0; + + FILE* fp = fopen(brandFile.c_str(), "r"); + if (fp != NULL) + { + while (feof(fp) == 0) + { + char lineContent[2048] = { 0 }; + if (NULL == fgets(lineContent, 2048, fp)) + { + continue; + } + + if (0 == mainVersion) + { + char* p = strstr(lineContent, "VERSION_MAIN"); + if (NULL != p) + { + p += strlen("VERSION_MAIN"); + while (isspace(*p)) + ++p; + mainVersion = atoi(p); + } + } + + if (0 == subVersion) + { + char *p = strstr(lineContent, "VERSION_SUB"); + if (NULL != p) + { + p += strlen("VERSION_SUB"); + while (isspace(*p)) + ++p; + subVersion = atoi(p); + } + } + + if (0 != mainVersion && 0 != subVersion) + { + break; + } + } + + fclose(fp); + } + +if (oemName == "OEM_LISICHENG") + buildVersion = 14; +else if (oemName == "OEM_HANWANG") + buildVersion = 16; +else if (oemName == "OEM_CANGTIAN") + buildVersion = 18; +else if (oemName == "OEM_ZHONGJING") + buildVersion = 20; +else if (oemName == "OEM_ZIGUANG") + buildVersion = 22; +else if (oemName == "OEM_DELI") + buildVersion = 24; +else if (oemName == "OEM_NEUTRAL") + buildVersion = 26; +else + buildVersion = 10; + + buildVersion = buildVersion * 10; + +if (cpu == "x64") + buildVersion += 1; +else + buildVersion += 0; + + buildVersion *= 100; + + patchVersion = getPatchVersion(); + + char version1[32] = { 0 }; + sprintf(version1, "%d.%d.%d.%d", mainVersion, subVersion, buildVersion, patchVersion); + char version2[32] = { 0 }; + sprintf(version2, "%d,%d,%d,%d", mainVersion, subVersion, buildVersion, patchVersion); + + std::string resourceData; + fp = fopen(resourceFile.c_str(), "r"); + if (NULL != fp) + { + fseek(fp, 0, SEEK_END); + long size = ftell(fp); + + fseek(fp, 0, SEEK_SET); + char* buf = new char[size + 1]; + fread(buf, 1, size, fp); + buf[size] = 0; + resourceData = buf; + delete [] buf; + + fclose(fp); + } + + if (resourceData.empty()) + { + return 0; + } + + size_t offset = 0; + while (1) + { + size_t pos = resourceData.find("0,0,0,0", offset); + if (std::string::npos == pos) + { + break; + } + + resourceData.replace(pos, strlen("0,0,0,0"), version2); + offset = pos + strlen(version2); + } + + offset = 0; + while (1) + { + size_t pos = resourceData.find("0.0.0.0", offset); + if (std::string::npos == pos) + { + break; + } + + resourceData.replace(pos, strlen("0.0.0.0"), version1); + offset = pos + strlen(version1); + } + + fp = fopen(resourceFile.c_str(), "w"); + if (NULL != fp) + { + fwrite(&resourceData[0], 1, resourceData.size(), fp); + fclose(fp); + } + + return 0; +} diff --git a/tools/hgsetver/hgsetver.sln b/tools/hgsetver/hgsetver.sln new file mode 100644 index 00000000..338b5a55 --- /dev/null +++ b/tools/hgsetver/hgsetver.sln @@ -0,0 +1,31 @@ +锘 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.32228.343 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hgsetver", "hgsetver.vcxproj", "{39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Debug|x64.ActiveCfg = Debug|x64 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Debug|x64.Build.0 = Debug|x64 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Debug|x86.ActiveCfg = Debug|Win32 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Debug|x86.Build.0 = Debug|Win32 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Release|x64.ActiveCfg = Release|x64 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Release|x64.Build.0 = Release|x64 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Release|x86.ActiveCfg = Release|Win32 + {39A8C4E8-FF2B-4FEA-8959-8AF962279CDD}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5DE3477A-31B2-4C22-A7C6-56DD0D6E014B} + EndGlobalSection +EndGlobal diff --git a/tools/hgsetver/hgsetver.vcxproj b/tools/hgsetver/hgsetver.vcxproj new file mode 100644 index 00000000..adf858b1 --- /dev/null +++ b/tools/hgsetver/hgsetver.vcxproj @@ -0,0 +1,151 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + Win32Proj + {39a8c4e8-ff2b-4fea-8959-8af962279cdd} + hgsetver + 10.0 + + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + Application + true + v142 + Unicode + + + Application + false + v142 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + false + + + true + + + false + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + MultiThreaded + + + Console + true + true + true + + + + + + + + + \ No newline at end of file