diff --git a/app/scanner2/Scanner_zh_EN.qm b/app/scanner2/Scanner_zh_EN.qm index dc420400..f66bc22b 100644 Binary files a/app/scanner2/Scanner_zh_EN.qm and b/app/scanner2/Scanner_zh_EN.qm differ diff --git a/app/scanner2/Scanner_zh_EN.ts b/app/scanner2/Scanner_zh_EN.ts index 8d63f07f..c91fe974 100644 --- a/app/scanner2/Scanner_zh_EN.ts +++ b/app/scanner2/Scanner_zh_EN.ts @@ -2738,7 +2738,7 @@ Please contact the equipment supplier promptly to purchase a replacement paper r <p>Vendor: %1</p> - <p>Vendor: %1</p> + <p>Manufacturer/Developer: %1</p> @@ -2750,24 +2750,24 @@ Please contact the equipment supplier promptly to purchase a replacement paper r <p>Company website: <a href=%1>%1</p> - <p>Company website: <a href=%1>%1</p> + <p>Company URL: <a href=%1>%1</p> <p>Company address: %1</p> - <p>Company address: %1</p> + <p>Address: %1</p> <p>Company telephone: %1</p> - <p>Company telephone: %1</p> + <p>Contact number: %1</p> <p>Company GPS: <a href=%1>%2</p> - <p>Company GPS: <a href=%1>%2</p> + <p>Navigation address: <a href=%1>%2</p> diff --git a/app/scanner2/mainwindow.cpp b/app/scanner2/mainwindow.cpp index a775b37a..3db6fd94 100644 --- a/app/scanner2/mainwindow.cpp +++ b/app/scanner2/mainwindow.cpp @@ -45,9 +45,9 @@ #include "HGUIGlobal.h" #include "HGString.h" #include "app_cfg.h" +#include "app_about_info/appAboutInfo.h" #include #include "dialog_wrong_img.h" -#include "../../code_device/hgdriver/hgdev/char_const.h" #include "lang/app_language.h" #define PASSWORD_KEY 4 @@ -2900,39 +2900,65 @@ void MainWindow::on_act_help_triggered() void MainWindow::on_act_about_triggered() { - if (m_devUser == nullptr) - { - QMessageBox::information(this, tr("Prompt"), tr("Please go to 'Menu Bar ->Scan' to select a device")); - return; - } + const char* oem = HGVERSION_OEMNAME_HUAGO; -#if defined(HG_CMP_MSC) - HGTwainDeviceCustomInfo info = {0}; - m_devUser->GetDeviceCustomInfo(&info); -#else - HGSaneDeviceCustomInfo info = {0}; - m_devUser->GetDeviceCustomInfo(&info); +#if defined(OEM_HANWANG) + oem = HGVERSION_OEMNAME_HANVON; +#elif defined(OEM_LISICHENG) + oem = HGVERSION_OEMNAME_LANXUM; +#elif defined(OEM_CANGTIAN) + oem = HGVERSION_OEMNAME_CUMTENN; +#elif defined(OEM_ZHONGJING) + oem = HGVERSION_OEMNAME_MICROTEK; +#elif defined(OEM_ZIGUANG) + oem = HGVERSION_OEMNAME_UNIS; +#elif defined(OEM_NEUTRAL) + oem = HGVERSION_OEMNAME_NEUTRAL; +#elif defined(OEM_DELI) + oem = HGVERSION_OEMNAME_DELI; #endif + HGChar version[32] = { 0 }; + getCurrVersion(HGVERSION_APPNAME_SCANNER, oem, version, 32); + QString title = tr("about %1").arg(windowTitle()); QString content; - content += tr("

DriverVer: %1

").arg(QString(info.driverVer)); - content += tr("

Vendor: %1

").arg(QString::fromLocal8Bit(info.vendor)); + content += tr("

DriverVer: %1

").arg(QString::fromLocal8Bit(version)); -#if defined(OEM_ZHONGJING) - content += tr("

Company address: %1

").arg(QString::fromLocal8Bit(info.comAddr)); - content += tr("

Company telephone: %1

").arg(QString(info.comTel)); - content += tr("

Company website: %1

").arg(QString(info.comUrl)); - content += tr("

Copyright: %1

").arg(QString::fromLocal8Bit(info.copyright)); +#if defined(OEM_NEUTRAL) + QMessageBox::about(this, title, content); #else - content += tr("

Copyright: %1

").arg(QString::fromLocal8Bit(info.copyright)); - content += tr("

Company website: %1

").arg(QString(info.comUrl)); - content += tr("

Company address: %1

").arg(QString::fromLocal8Bit(info.comAddr)); - content += tr("

Company telephone: %1

").arg(QString(info.comTel)); - content += tr("

Company GPS: %2

").arg(QString(info.comGps)).arg(tr("Baidu map access")); -#endif + + #if defined(OEM_ZHONGJING) + QString appLang = getCfgValue("global", "language", QString("chinese")); + if (appLang == "chinese") + { + content += tr("

Vendor: %1

").arg(QString::fromLocal8Bit(COMPANY_NAME)); + content += tr("

Company address: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_ADDRESS)); + content += tr("

Company telephone: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_TEL)); + content += tr("

Company website: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_URL)); + content += tr("

Copyright: %1

").arg(QString::fromLocal8Bit(BRAND_COPYRIGHT)); + } + else if(appLang == "english") + { + content += tr("

Vendor: %1

").arg(QString::fromLocal8Bit(COMPANY_NAME_EN)); + content += tr("

Company address: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_ADDRESS_EN)); + content += tr("

Company telephone: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_TEL)); + content += tr("

Company website: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_URL)); + content += tr("

Copyright: %1

").arg(QString::fromLocal8Bit(BRAND_COPYRIGHT_EN)); + } + #else + content += tr("

Vendor: %1

").arg(QString::fromLocal8Bit(COMPANY_NAME)); + content += tr("

Copyright: %1

").arg(QString::fromLocal8Bit(BRAND_COPYRIGHT)); + content += tr("

Company website: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_URL)); + content += tr("

Company address: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_ADDRESS)); + content += tr("

Company telephone: %1

").arg(QString::fromLocal8Bit(BRAND_COMPANY_TEL)); + content += tr("

Company GPS: %2

").arg(QString::fromLocal8Bit(BRAND_URL_GPS)).arg(tr("Baidu map access")); + #endif QMessageBox::about(this, title, content); + +#endif } void MainWindow::on_act_scannerSettings_triggered() @@ -2957,6 +2983,7 @@ void MainWindow::on_act_scannerSettings_triggered() deviceIsOnline = false; else if (HGSANE_ERR_FAIL == ret) openSucceed = false; +#endif if (!deviceIsOnline) { @@ -2968,8 +2995,6 @@ void MainWindow::on_act_scannerSettings_triggered() QMessageBox::information(this, tr("Prompt"), tr("Open failed")); deleteDevUser(); } -#endif - } void MainWindow::on_act_acquire_triggered() @@ -3866,6 +3891,120 @@ void MainWindow::deleteDevUser() } } +HGResult MainWindow::getCurrVersion(const HGChar* appName, const HGChar* oemName, HGChar* version, HGUInt maxLen) +{ + if (NULL == version || 0 == maxLen) + { + return HGBASE_ERR_INVALIDARG; + } + + std::string ver = "0.0.0.0"; + + if (appName == HGVERSION_APPNAME_SCANNER) + { +#if defined(HG_CMP_MSC) + std::string regName; + if (oemName == HGVERSION_OEMNAME_HANVON) + regName = "SOFTWARE\\HanvonScan"; + else if (oemName == HGVERSION_OEMNAME_LANXUM) + regName = "SOFTWARE\\LanxumScan"; + else if (oemName == HGVERSION_OEMNAME_CUMTENN) + regName = "SOFTWARE\\CumtennScan"; + else if (oemName == HGVERSION_OEMNAME_MICROTEK) + regName = "SOFTWARE\\MicrotekScan"; + else if (oemName == HGVERSION_OEMNAME_UNIS) + regName = "SOFTWARE\\UniScan"; + else + regName = "SOFTWARE\\HuaGoScan"; + + HKEY hKey = NULL; + RegOpenKeyExA(HKEY_LOCAL_MACHINE, regName.c_str(), 0, KEY_QUERY_VALUE, &hKey); + if (NULL != hKey) + { + CHAR szData[MAX_PATH] = { 0 }; + DWORD cbData = MAX_PATH; + if (ERROR_SUCCESS == RegQueryValueExA(hKey, "AppVersion", NULL, NULL, (LPBYTE)szData, &cbData)) + { + ver = szData; + } + + RegCloseKey(hKey); + } +#else + std::string appName; + std::string osName = GetOSName(); + if ("UnionTech" == osName) + { + if (oemName == HGVERSION_OEMNAME_HANVON) + appName = "com.hanvonchina.hanvonscan"; + else if (oemName == HGVERSION_OEMNAME_LANXUM) + appName = "com.lanxumchina.lanxumscan"; + else if (oemName == HGVERSION_OEMNAME_CUMTENN) + appName = "com.cumtennchina.cumtennscan"; + else if (oemName == HGVERSION_OEMNAME_MICROTEK) + appName = "com.microtekchina.microtekscan"; + else if (oemName == HGVERSION_OEMNAME_UNIS) + appName = "com.unischina.uniscan"; + else + appName = "com.huagaochina.huagoscan"; + } + else + { + if (oemName == HGVERSION_OEMNAME_HANVON) + appName = "scanner-driver-hanvon"; + else if (oemName == HGVERSION_OEMNAME_LANXUM) + appName = "scanner-driver-lanxum"; + else if (oemName == HGVERSION_OEMNAME_CUMTENN) + appName = "scanner-driver-cumtenn"; + else if (oemName == HGVERSION_OEMNAME_MICROTEK) + appName = "scanner-driver-microtek"; + else if (oemName == HGVERSION_OEMNAME_UNIS) + appName = "scanner-driver-unis"; + else + appName = "scanner-driver-huagao"; + } + + std::string cmd = "dpkg -l " + appName; + FILE* fp = popen(cmd.c_str(), "r"); + if (NULL != fp) + { + char buff[2048] = { 0 }; + fread(buff, 2048, 1, fp); + + char* p = strstr(buff, appName.c_str()); + if (NULL != p) + { + char* p2 = p + appName.size(); + while (!isdigit(*p2) && '.' != *p2) + ++p2; + + int len = (int)strlen(p2); + for (int i = 0; i < len; ++i) + { + if (!isdigit(p2[i]) && '.' != p2[i]) + { + p2[i] = '\0'; + break; + } + } + + ver = p2; + } + + pclose(fp); + } +#endif + } + + if (maxLen < ver.size() + 1) + { + return HGBASE_ERR_FAIL; + } + + strcpy(version, ver.c_str()); + return HGBASE_ERR_OK; +} + #if !defined(HG_CMP_MSC) void MainWindow::checkRollerLife() { diff --git a/app/scanner2/mainwindow.h b/app/scanner2/mainwindow.h index 69b46b0b..d7192ab6 100644 --- a/app/scanner2/mainwindow.h +++ b/app/scanner2/mainwindow.h @@ -245,6 +245,7 @@ private: void initAcquireIntoComboBox(); void updateSideBar(); void deleteDevUser(); + HGResult getCurrVersion(const HGChar* appName, const HGChar* oemName, HGChar* version, HGUInt maxLen); #if !defined(HG_CMP_MSC) void checkRollerLife(); diff --git a/build2/qt/HGFWUpgrade/HGFWUpgrade.pro b/build2/qt/HGFWUpgrade/HGFWUpgrade.pro index c3dedf51..9cf475fd 100644 --- a/build2/qt/HGFWUpgrade/HGFWUpgrade.pro +++ b/build2/qt/HGFWUpgrade/HGFWUpgrade.pro @@ -114,7 +114,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc +# QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/build2/qt/HGSaneUI/HGSaneUI.pro b/build2/qt/HGSaneUI/HGSaneUI.pro index 8a07def8..aeae07d6 100644 --- a/build2/qt/HGSaneUI/HGSaneUI.pro +++ b/build2/qt/HGSaneUI/HGSaneUI.pro @@ -143,7 +143,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc + # QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/build2/qt/HGScanner/HGScanner.pro b/build2/qt/HGScanner/HGScanner.pro index 2d1c0539..d56c0303 100644 --- a/build2/qt/HGScanner/HGScanner.pro +++ b/build2/qt/HGScanner/HGScanner.pro @@ -120,7 +120,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc + # QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/build2/qt/HGScanner2/HGScanner2.pro b/build2/qt/HGScanner2/HGScanner2.pro index eaccaf30..b6c908dd 100644 --- a/build2/qt/HGScanner2/HGScanner2.pro +++ b/build2/qt/HGScanner2/HGScanner2.pro @@ -124,7 +124,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc + # QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/build2/qt/HGTwainUI/HGTwainUI.pro b/build2/qt/HGTwainUI/HGTwainUI.pro index c152da87..30f67a26 100644 --- a/build2/qt/HGTwainUI/HGTwainUI.pro +++ b/build2/qt/HGTwainUI/HGTwainUI.pro @@ -205,7 +205,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc + # QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/build2/qt/HGUpgrade/HGUpgrade.pro b/build2/qt/HGUpgrade/HGUpgrade.pro index c208aaf2..e9e61a39 100644 --- a/build2/qt/HGUpgrade/HGUpgrade.pro +++ b/build2/qt/HGUpgrade/HGUpgrade.pro @@ -109,7 +109,7 @@ unix { CONFIG += unversioned_libname unversioned_soname QMAKE_CXXFLAGS += -fvisibility=hidden - QMAKE_LFLAGS += -static-libstdc++ -static-libgcc + # QMAKE_LFLAGS += -static-libstdc++ -static-libgcc QMAKE_LFLAGS += -Wl,-rpath,\'\$\$ORIGIN\' -Wl,--exclude-libs,ALL QMAKE_LFLAGS += -z defs -B direct diff --git a/modules/sane_user/HGSaneImpl.cpp b/modules/sane_user/HGSaneImpl.cpp index f3588d38..5ea14790 100644 --- a/modules/sane_user/HGSaneImpl.cpp +++ b/modules/sane_user/HGSaneImpl.cpp @@ -962,7 +962,7 @@ HGResult HGSaneDeviceImpl::GetScanMode(HGChar *scanMode, HGUInt maxLen) HGChar *value = (char*)malloc(opt->size * 2 + 4); if (strcmp(opt->name, SANE_STD_OPT_NAME_SCAN_MODE) == 0) { - SANE_Status ret = m_sourceImpl->m_saneApi.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, &value, &method); + SANE_Status ret = m_sourceImpl->m_saneApi.sane_control_option_api(m_devHandle, i, SANE_ACTION_GET_VALUE, value, &method); if (ret == SANE_STATUS_GOOD) { strcpy(scanMode, value); diff --git a/modules/saneui/dialog_device_scan.cpp b/modules/saneui/dialog_device_scan.cpp index 0cebd343..33715b6e 100644 --- a/modules/saneui/dialog_device_scan.cpp +++ b/modules/saneui/dialog_device_scan.cpp @@ -19,8 +19,6 @@ Dialog_Device_Scan::Dialog_Device_Scan(const SANEAPI* saneApi, SANE_Handle dev, m_eventParam = eventParam; m_imageCallback = imageCallback; m_imageParam = imageParam; - m_buffer = NULL; - m_bufferSize = 0; m_stopThread = HGFALSE; m_thread = NULL; @@ -64,10 +62,6 @@ void Dialog_Device_Scan::on_eventFunc(int flag, QString errInfo) HGBase_CloseThread(m_thread); m_thread = NULL; - free(m_buffer); - m_buffer = NULL; - m_bufferSize = 0; - ui->pushButton_Cancel->setVisible(false); ui->pushButton_Complete->setVisible(true); ui->label_imgRecived->setVisible(false); @@ -103,19 +97,6 @@ void Dialog_Device_Scan::on_imageCount(int count) void Dialog_Device_Scan::startScan() { - SANE_Parameters params; - memset(¶ms, 0, sizeof(SANE_Parameters)); - SANE_Status stat = m_saneAPI.sane_get_parameters_api(m_saneDev, ¶ms); - assert(SANE_STATUS_GOOD == stat); - - m_bufferSize = params.bytes_per_line * params.lines; - m_buffer = (HGByte *)malloc(m_bufferSize); - if (NULL == m_buffer) - { - ui->label->setText(tr("Out of memory")); - return; - } - m_stopThread = HGFALSE; HGBase_OpenThread(ThreadFunc, this, &m_thread); @@ -158,14 +139,27 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param) { SANE_Parameters params; memset(¶ms, 0, sizeof(SANE_Parameters)); - SANE_Status stat1 = p->m_saneAPI.sane_get_parameters_api(p->m_saneDev, ¶ms); + SANE_Status stat1 = p->m_saneAPI.sane_get_parameters_api(p->m_saneDev, ¶ms); + if (SANE_STATUS_GOOD != stat1) + { + emit p->eventFunc(-1, QString::fromUtf8(p->m_saneAPI.sane_strstatus_api(stat1))); + break; + } + + HGUInt bufferSize = params.bytes_per_line * params.lines; + HGByte *buffer = (HGByte *)malloc(bufferSize); + if (NULL == buffer) + { + emit p->eventFunc(-1, QString::fromUtf8(p->m_saneAPI.sane_strstatus_api(SANE_STATUS_NO_MEM))); + break; + } SANE_Int readSize = 0; SANE_Status stat2 = SANE_STATUS_GOOD; - while (readSize < p->m_bufferSize) + while (readSize < bufferSize) { SANE_Int len = 0; - stat2 = p->m_saneAPI.sane_read_api(p->m_saneDev, p->m_buffer + readSize, p->m_bufferSize - readSize, &len); + stat2 = p->m_saneAPI.sane_read_api(p->m_saneDev, buffer + readSize, bufferSize - readSize, &len); readSize += len; if (SANE_STATUS_GOOD != stat2) { @@ -175,24 +169,28 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param) if (SANE_STATUS_GOOD == stat2) { - // m_bufferSize空间不够 + // bufferSize空间不够 + free(buffer); emit p->eventFunc(-1, QString::fromUtf8(p->m_saneAPI.sane_strstatus_api(SANE_STATUS_NO_MEM))); break; } else if (SANE_STATUS_EOF == stat2) { - if (SANE_STATUS_GOOD != stat1 || 0 == readSize || readSize != params.bytes_per_line * params.lines) + if (0 == readSize || readSize != params.bytes_per_line * params.lines) { + free(buffer); emit p->eventFunc(-1, QString::fromUtf8(p->m_saneAPI.sane_strstatus_api(SANE_STATUS_IO_ERROR))); break; } } else if (SANE_STATUS_CANCELLED == stat2) { + free(buffer); break; } else { + free(buffer); emit p->eventFunc(-1, QString::fromUtf8(p->m_saneAPI.sane_strstatus_api(stat2))); break; } @@ -215,7 +213,7 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param) HGImageInfo imgInfo = { (HGUInt)params.pixels_per_line, (HGUInt)params.lines, imgType, (HGUInt)params.bytes_per_line, HGBASE_IMGORIGIN_TOP }; HGImage img = NULL; - HGBase_CreateImageWithData((HGByte*)p->m_buffer, &imgInfo, &img); + HGBase_CreateImageWithData(buffer, &imgInfo, &img); if (NULL != img) { p->m_imageCallback(img, p->m_imageParam); @@ -224,6 +222,10 @@ void HGAPI Dialog_Device_Scan::ThreadFunc(HGThread thread, HGPointer param) } } + free(buffer); + buffer = NULL; + bufferSize = 0; + SANE_Status stat3 = p->m_saneAPI.sane_start_api(p->m_saneDev); if (SANE_STATUS_NO_DOCS == stat3) { diff --git a/modules/saneui/dialog_device_scan.h b/modules/saneui/dialog_device_scan.h index 51e29bf9..7a515777 100644 --- a/modules/saneui/dialog_device_scan.h +++ b/modules/saneui/dialog_device_scan.h @@ -50,8 +50,6 @@ private: void *m_eventParam; show_scan_ui_image_callback m_imageCallback; void *m_imageParam; - HGByte* m_buffer; - HGInt m_bufferSize; volatile HGBool m_stopThread; HGThread m_thread; diff --git a/sdk/webservice/WSServer.cpp b/sdk/webservice/WSServer.cpp index 30a432c6..e82c06fb 100644 --- a/sdk/webservice/WSServer.cpp +++ b/sdk/webservice/WSServer.cpp @@ -28,7 +28,7 @@ namespace ver_2 void WSServer::Connect(const ConnectParam* param) { assert(NULL != param && this == param->svr); - +#if 0 if (!m_vectorUser.empty()) { #if defined(HG_CMP_MSC) @@ -38,13 +38,14 @@ namespace ver_2 #endif return; } +#endif WebUser* user = new WSUser(this, m_currUserId, param->ip, param->port, param->socket); user->Open(); ++m_currUserId; m_vectorUser.push_back(user); #if defined(HG_CMP_MSC) - lstrcpyA(nid.szTip, "扫描服务程序(已连接)"); + sprintf(nid.szTip, "扫描服务程序(连接数 %u)", m_vectorUser.size()); Shell_NotifyIconA(NIM_MODIFY, &nid); #endif } diff --git a/sdk/webservice/WebServer.cpp b/sdk/webservice/WebServer.cpp index f2369bfc..44619f4c 100644 --- a/sdk/webservice/WebServer.cpp +++ b/sdk/webservice/WebServer.cpp @@ -141,11 +141,8 @@ void WebServer::DisConnect(const DisConnectParam* param) } #if defined(HG_CMP_MSC) - if (m_vectorUser.empty()) - { - lstrcpyA(nid.szTip, "扫描服务程序(未连接)"); - Shell_NotifyIconA(NIM_MODIFY, &nid); - } + sprintf(nid.szTip, "扫描服务程序(连接数 %u)", m_vectorUser.size()); + Shell_NotifyIconA(NIM_MODIFY, &nid); #endif } @@ -214,4 +211,4 @@ void HGAPI WebServer::ThreadFunc(HGThread thread, HGPointer param) p->PostConnectMsg(inet_ntoa(addrClient.sin_addr), ntohs(addrClient.sin_port), socketConn); } -} \ No newline at end of file +} diff --git a/sdk/webservice/main.cpp b/sdk/webservice/main.cpp index 479c3652..07ef5fd6 100644 --- a/sdk/webservice/main.cpp +++ b/sdk/webservice/main.cpp @@ -143,7 +143,7 @@ int main() nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP | NIF_INFO; nid.uCallbackMessage = WM_TRAY; nid.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON_HGWEBSERVICE)); - lstrcpyA(nid.szTip, "扫描服务程序(未连接)"); + lstrcpyA(nid.szTip, "扫描服务程序(连接数 0)"); Shell_NotifyIconA(NIM_ADD, &nid); ShowWindow(hWnd, SW_HIDE); diff --git a/third_party/leptonica/kylin/amd64/lib/libleptonica.a b/third_party/leptonica/kylin/amd64/lib/libleptonica.a index 47e2f72a..a7495d4e 100644 Binary files a/third_party/leptonica/kylin/amd64/lib/libleptonica.a and b/third_party/leptonica/kylin/amd64/lib/libleptonica.a differ diff --git a/third_party/leptonica/kylin/loongarch64/lib/libleptonica.a b/third_party/leptonica/kylin/loongarch64/lib/libleptonica.a index 933d9c6f..9bed0ec0 100644 Binary files a/third_party/leptonica/kylin/loongarch64/lib/libleptonica.a and b/third_party/leptonica/kylin/loongarch64/lib/libleptonica.a differ diff --git a/third_party/leptonica/kylin/mips64/lib/libleptonica.a b/third_party/leptonica/kylin/mips64/lib/libleptonica.a index b8fc053b..a73575d8 100644 Binary files a/third_party/leptonica/kylin/mips64/lib/libleptonica.a and b/third_party/leptonica/kylin/mips64/lib/libleptonica.a differ diff --git a/third_party/leptonica/uos/amd64/lib/libleptonica.a b/third_party/leptonica/uos/amd64/lib/libleptonica.a index 47e2f72a..a7495d4e 100644 Binary files a/third_party/leptonica/uos/amd64/lib/libleptonica.a and b/third_party/leptonica/uos/amd64/lib/libleptonica.a differ diff --git a/third_party/leptonica/uos/loongarch64/lib/libleptonica.a b/third_party/leptonica/uos/loongarch64/lib/libleptonica.a index 933d9c6f..9bed0ec0 100644 Binary files a/third_party/leptonica/uos/loongarch64/lib/libleptonica.a and b/third_party/leptonica/uos/loongarch64/lib/libleptonica.a differ diff --git a/third_party/leptonica/uos/mips64/lib/libleptonica.a b/third_party/leptonica/uos/mips64/lib/libleptonica.a index b8fc053b..a73575d8 100644 Binary files a/third_party/leptonica/uos/mips64/lib/libleptonica.a and b/third_party/leptonica/uos/mips64/lib/libleptonica.a differ