From e5311b9175ae976165d7d6ab9f0c9792fa6bc4c0 Mon Sep 17 00:00:00 2001 From: yangjiaxuan <171295266@qq.com> Date: Mon, 21 Aug 2023 17:52:00 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=A9=B1=E5=8A=A8=E5=B8=AE?= =?UTF-8?q?=E5=8A=A9=E6=96=87=E6=A1=A3=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hgdriver/hgdev/hg_scanner.cpp | 120 ++++++++++++++++++++++++++++------ 1 file changed, 101 insertions(+), 19 deletions(-) diff --git a/hgdriver/hgdev/hg_scanner.cpp b/hgdriver/hgdev/hg_scanner.cpp index a31fb7f..291631f 100644 --- a/hgdriver/hgdev/hg_scanner.cpp +++ b/hgdriver/hgdev/hg_scanner.cpp @@ -1,4 +1,4 @@ -#include "hg_scanner.h" +#include "hg_scanner.h" #include "../wrapper/hg_log.h" #include "sane/sane_option_definitions.h" #include "scanner_setting.h" @@ -1554,28 +1554,111 @@ static int GetFilePath(const char* fileName, char* path, int maxLen) path[pcName - fileName] = 0; return 0; } - -int hg_scanner::setting_help(void* data, long* len) +std::string get_help_file_path() { + int code_page = lang_get_cur_code_page(); + std::string language = "chinese"; + + if (code_page == 20127) + { + language = "english"; + } + + std::string filename; +#if defined(HG_CMP_MSC) +#if defined(OEM_HANWANG) + filename = "HanvonScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_LISICHENG) + filename = "LanxumScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_CANGTIAN) + filename = "CumtennScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_ZHONGJING) + filename = "MicrotekScan_scanSettings_Help_manual.pdf"; + if (language == "english") + filename = "MicrotekScan_scanSettings_Help_manual_EN.pdf"; +#elif defined(OEM_ZIGUANG) + filename = "UniScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_NEUTRAL) + filename = "NeuScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_DELI) + filename = "DeliScan_scanSettings_Help_manual.pdf"; +#else + filename = "HuaGoScan_scanSettings_Help_manual.pdf"; +#endif +#else + std::string osName; + FILE* file = popen("cat /etc/issue | cut -d\' \' -f1", "r"); + if (NULL != file) + { + char data[1024] = { 0 }; + if (NULL != fgets(data, 1024, file)) + osName = data; + pclose(file); + } + + printf("osName=%s\n", osName.c_str()); + if (osName.find("UnionTech") != std::string::npos) + { +#if defined(OEM_HANWANG) + filename = "../../entries/help/HanvonScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_LISICHENG) + filename = "../../entries/help/LanxumScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_CANGTIAN) + filename = "../../entries/help/CumtennScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_ZHONGJING) + filename = "../../entries/help/MicrotekScan_scanSettings_Help_manual.pdf"; + if (language == "english") + filename = "../../entries/help/MicrotekScan_scanSettings_Help_manual_EN.pdf"; +#elif defined(OEM_ZIGUANG) + filename = "../../entries/help/UniScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_NEUTRAL) + filename = "../../entries/help/NeuScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_DELI) + filename = "../../entries/help/DeliScan_scanSettings_Help_manual.pdf"; +#else + filename = "../../entries/help/HuaGoScan_scanSettings_Help_manual.pdf"; +#endif + } + else + { +#if defined(OEM_HANWANG) + filename = "../doc/HanvonScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_LISICHENG) + filename = "../doc/LanxumScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_CANGTIAN) + filename = "../doc/CumtennScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_ZHONGJING) + filename = "../doc/MicrotekScan_scanSettings_Help_manual.pdf"; + if (m_currLang == "english") + filename = "../doc/MicrotekScan_scanSettings_Help_manual_EN.pdf"; +#elif defined(OEM_ZIGUANG) + filename = "../doc/UniScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_NEUTRAL) + filename = "../doc/NeuScan_scanSettings_Help_manual.pdf"; +#elif defined(OEM_DELI) + filename = "../doc/DeliScan_scanSettings_Help_manual.pdf"; +#else + filename = "../doc/HuaGoScan_scanSettings_Help_manual.pdf"; +#endif + } +#endif + char moduleName[256]; GetModuleName(NULL, moduleName, 256); char exePath[256]; GetFilePath(moduleName, exePath, 256); std:string exePath2 = exePath; - std::string helpfile = exePath2 + HELP_PATH; - std::string com = "xdg-open ";//注意空格保留 - int code_page = lang_get_cur_code_page(); + std::string helpfile = exePath2 + filename; + return helpfile; +} + +int hg_scanner::setting_help(void* data, long* len) +{ + std::string helpfile = get_help_file_path(); + int ret = SCANNER_ERR_OK; - - if (code_page == 20127) - { - helpfile = exePath2 + HELP_PATH_EN; - } - #if defined(WIN32) || defined(_WIN64) - com = ""; - //helpfile.insert(0, hg_log::get_scanner_path()); FILE* src = fopen(helpfile.c_str(), "rb"); if (src) fclose(src); @@ -1584,18 +1667,17 @@ int hg_scanner::setting_help(void* data, long* len) if (access(helpfile.c_str(),F_OK) == -1) #endif { - VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"open help file fail,not find file :%s code page :%d\r\n",helpfile.c_str(), code_page); + VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO, "open help file fail,not find file :%s %d\r\n", helpfile.c_str(), 1); ret = SCANNER_ERR_OPEN_FILE_FAILED; return ret ; } - com += helpfile; #if defined(WIN32) || defined(_WIN64) - ShellExecuteA(NULL, "Open", com.c_str(), NULL, NULL, SW_SHOWNORMAL); + ShellExecuteA(NULL, "Open", helpfile.c_str(), NULL, NULL, SW_SHOWNORMAL); #else - system(com.c_str()); + system(helpfile.c_str()); #endif - VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"App_Help_pdf Path is:%s Code Page is:%d\n",helpfile.c_str(), code_page); + VLOG_MINI_2(LOG_LEVEL_DEBUG_INFO,"scanSettings_Help_pdf Path is:%s %d\r\n",helpfile.c_str(), 1); return ret; } int hg_scanner::setting_color_mode(void* data, long* len)