Explorar el Código

Merge branch 'gifur_fixed_everything' into ST2

80374374 hace 1 año
padre
commit
e8fc57584e

+ 52 - 151
CMakeLists.txt

@@ -27,6 +27,7 @@ set(CMAKE_CXX_STANDARD 11)
 
 #  Include extend cmake scripts
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/addin/cmake/ )
+set(DEBUGMODE_ON OFF)
 
 include(CheckStructHasMember)
 include(CheckIncludeFiles)
@@ -36,8 +37,14 @@ include(GetGitRevisionDescription)
 include(ComplexLibrary)
 include(TodayTimeStamp)
 include(PrecompiledHeader)
+
 include(WindowsDLLVersion)
+
+# include path enviroment for RVC
 include(BuildMakeSettings)
+include(ModMakeSettings)
+include(ThirdPartySettings)
+
 # Turn on solution folders (2.8.4+) for Visual Studio.
 set_property(GLOBAL PROPERTY USE_FOLDERS ON)
 
@@ -159,14 +166,6 @@ if(DEVOPS_ON)
 		set(BUILD_NUMBER ${RVC_DEV_NUM})
 	endif(DEFINED ENV{ENV_VER_Build})
 
-	if(DEFINED ENV{BUILD_AS_INSTALLER})
-		if($ENV{BUILD_AS_INSTALLER})
-			set(PACK_AS_DEB_PKG ON)
-			set(WITH_ADDITIONAL_RES ON)
-			message(STATUS "built as debian installer $ENV{BUILD_AS_INSTALLER}")
-		endif($ENV{BUILD_AS_INSTALLER})
-	endif(DEFINED ENV{BUILD_AS_INSTALLER})
-
 	if(DEVOPS_ON_CMAKE_PRD)
 		set(RVC_VERSION_SUFFIX "PRD")
 		if(PACK_AS_DEB_PKG)
@@ -254,7 +253,7 @@ if(${CMAKE_GENERATOR} MATCHES "Visual Studio*")
 		set(BUILD_TYPE_NAME "Default")
 	endif()
 	if(NOT CMAKE_GENERATOR_PLATFORM)
-		message(STATUS "set win32 platform default")
+		message(STATUS "set win32 platform default ${CMAKE_SYSTEM_PROCESSOR}")
 		set(CMAKE_GENERATOR_PLATFORM "${CMAKE_SYSTEM_PROCESSOR}")
 	endif()
 
@@ -272,6 +271,7 @@ endif()
 
 set(OLD_CONAN_EXPORTED ${CONAN_EXPORTED})
 
+#Would not happen ever. todo
 if(CONAN_EXPORTED)
 	message(STATUS "Set CONAN_EXPORTED FALSE")
 	set(CONAN_EXPORTED FALSE)
@@ -295,11 +295,6 @@ endif(NOT MSVC)
 
 set(CONAN_EXPORTED ${OLD_CONAN_EXPORTED})
 
-# include path enviroment for RVC
-include(BuildMakeSettings)
-include(ModMakeSettings)
-include(ThirdPartySettings)
-
 message("=-=-=-=-=-=-=-====-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=\n\n")
 message(STATUS "RVC_VERSION=${RVC_VERSION_FULL}, Build time: ${BUILD_YEAR}.${BUILD_MONTH}.${BUILD_DAY}")
 message("\n\n=-=-=-=-=-=-=-====-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=")
@@ -344,18 +339,24 @@ if(DEVOPS_ON_CMAKE_ST)
 	add_compile_definitions(DEVOPS_ON_ST)
 	message(STATUS "add st compile definition")
 	set(COMPILED_ENV_TYPE 2)
+	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
 elseif(DEVOPS_ON_CMAKE_UAT)
 	add_compile_definitions(DEVOPS_ON_UAT)
 	message(STATUS "add uat compile definition")
 	set(COMPILED_ENV_TYPE 3)
+	set(INI_CONTENT "[MicroServiceURL]\nenv=UAT_BIZ")
 elseif(DEVOPS_ON_CMAKE_DEV)
 	add_compile_definitions(DEVOPS_ON_DEV)
 	message(STATUS "add dev compile definition")
+	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
 	set(COMPILED_ENV_TYPE 1)
 elseif(DEVOPS_ON_CMAKE_PRD)
 	add_compile_definitions(DEVOPS_ON_PRD)
 	message(STATUS "add product compile definition")
 	set(COMPILED_ENV_TYPE 4)
+	set(INI_CONTENT "[MicroServiceURL]\nenv=PRD")
+else()
+	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
 endif(DEVOPS_ON_CMAKE_ST)
 
 # Configure MSVC Runtime
@@ -368,14 +369,13 @@ if(MSVC)
 	set(MSVC_DYNAMIC_RUNTIME ${MSVC_RUNTIME})
 	configure_msvc_runtime()
 	set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
-endif(MSVC)
 
-if(MSVC)
-    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>")
+	add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>")
     add_compile_options("$<$<C_COMPILER_ID:MSVC>:/source-charset:utf-8>")
 
 	add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/execution-charset:gbk>")
     add_compile_options("$<$<C_COMPILER_ID:MSVC>:/execution-charset:gbk>")
+
 endif(MSVC)
 
 # Enable 64bit file support on linux and FreeBSD.
@@ -402,7 +402,13 @@ if(CMAKE_COMPILER_IS_GNUCC)
 		endif()
 	endif()
 	# active warning or gun c compiler would not burn warning if not necessary.
-	set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+	if(DEBUGMODE_ON)
+		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g3 -rdynamic")
+		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -rdynamic")
+	else()
+		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -rdynamic")
+		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -rdynamic")
+	endif()
 endif()
 
 if(MSVC)
@@ -508,7 +514,7 @@ elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
   # Update if necessary
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-long-long -pedantic")
 endif()
-
+message(STATUS "definition content: CMAKE_C_FLAGS:${CMAKE_C_FLAGS}; CMAKE_CXX_FLAGS:${CMAKE_CXX_FLAGS}")
 # Include files
 check_include_files(fcntl.h HAVE_FCNTL_H)
 check_include_files(unistd.h HAVE_UNISTD_H)
@@ -552,17 +558,6 @@ endif(UNIX)
 # Include directories
 include_directories(${CMAKE_CURRENT_BINARY_DIR})
 
-if(DEVOPS_ON_CMAKE_ST)
-	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
-elseif(DEVOPS_ON_CMAKE_UAT)
-	set(INI_CONTENT "[MicroServiceURL]\nenv=UAT_BIZ")
-elseif(DEVOPS_ON_CMAKE_DEV)
-	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
-elseif(DEVOPS_ON_CMAKE_PRD)
-	set(INI_CONTENT "[MicroServiceURL]\nenv=PRD")
-else()
-	set(INI_CONTENT "[MicroServiceURL]\nenv=ST_BIZ")
-endif(DEVOPS_ON_CMAKE_ST)
 # 生成env.ini文件
 file(WRITE ${CMAKE_BINARY_DIR}/env.ini "${INI_CONTENT}")
 message("Generated env.ini file in ${CMAKE_BINARY_DIR}")
@@ -570,32 +565,16 @@ message("Generated env.ini file in ${CMAKE_BINARY_DIR}")
 # Configure files
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ChangeLog.in" ${CMAKE_BINARY_DIR}/ChangeLog @ONLY)
 
-if(SIMULATE_ON)
-	if(EXISTS "${RVC_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}" AND IS_DIRECTORY "${RVC_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}")
-		message(STATUS "install directory existed.")
-		set(RVC_RUNTIME_OUTPUT_DIRECTORY "${RVC_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}")
-	else()
-		message(STATUS "install directory \"${RVC_INSTALL_PREFIX}${CMAKE_INSTALL_BINDIR}\" is not existed!")
-		set(SIMULATE_ON OFF)
-	endif()
-endif(SIMULATE_ON)
-
-if(SIMULATE_ON)
-	message(STATUS "simulate the real executive path environment, for debug easily")
-	rvc_set_library_output_dir(${RVC_RUNTIME_OUTPUT_DIRECTORY})
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+set(CMAKE_PDB_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+if(WIN32)
+	set(RVC_PDB_BINARY_DIR "${CMAKE_BINARY_DIR}/bin/${CMAKE_CONFIGURATION_TYPES}")
 else()
-	set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-	set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-	set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-	set(CMAKE_PDB_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-	if(WIN32)
-		set(RVC_PDB_BINARY_DIR "${CMAKE_BINARY_DIR}/bin/${CMAKE_CONFIGURATION_TYPES}")
-	else()
-		set(RVC_PDB_BINARY_DIR ${CMAKE_BINARY_DIR}/bin)
-	endif(WIN32)
-	message(STATUS "RVC_PDB_BINARY_DIR: ${RVC_PDB_BINARY_DIR}")
-
-endif(SIMULATE_ON)#end simulate
+	set(RVC_PDB_BINARY_DIR ${CMAKE_BINARY_DIR}/bin)
+endif(WIN32)
+message(STATUS "RVC_PDB_BINARY_DIR: ${RVC_PDB_BINARY_DIR}")
 
 add_subdirectory(Framework)
 if(BUILD_MODULE)
@@ -651,6 +630,11 @@ if(MSVC)
 	if(CPACK_GENERATOR MATCHES "NSIS")
 		set(CPACK_PACKAGE_INSTALL_DIRECTORY "C:\\\\Run")
 	endif()
+	install(FILES "${CMAKE_SOURCE_DIR}/addin/assets/VTM.ico"
+		DESTINATION "${PACK_INSTALL_RVC_DIR}/Resources" COMPONENT resources)
+	install(FILES "${CMAKE_SOURCE_DIR}/addin/packaging/DEBIAN/WallPaper1280.png"
+		"${CMAKE_SOURCE_DIR}/addin/packaging/DEBIAN/WallPaper1920.png"
+		DESTINATION "${PACK_INSTALL_RVC_DIR}/Resources" COMPONENT resources)
 else(MSVC)
 	if(PACK_AS_DEB_PKG)
 		# This is not the same purpose as CMAKE_INSTALL_PREFIX 
@@ -706,11 +690,14 @@ message(STATUS "RVC_VERSION = ${RVC_VERSION}, RVC_VERSION_MAJOR=${RVC_VERSION_MA
 file(WRITE ${active_txt_file} "${RVC_VERSION}")
 install(FILES ${active_txt_file} DESTINATION ${RVC_BASE_PATH} COMPONENT scripts)
 
-if(DEVOPS_ON AND DEVOPS_ON_CMAKE_PRD)
-	set(INSTALLSCRIPT_TYPE 1)
-else()
-	set(INSTALLSCRIPT_TYPE 0)
-endif(DEVOPS_ON AND DEVOPS_ON_CMAKE_PRD)
+set(INSTALLSCRIPT_TYPE 0)
+if(DEVOPS_ON)
+	if(DEVOPS_ON_CMAKE_PRD)
+		set(INSTALLSCRIPT_TYPE 1)
+	else()
+		#set(INSTALLSCRIPT_TYPE 2)
+	endif(DEVOPS_ON_CMAKE_PRD)
+endif(DEVOPS_ON)
 if(MSVC)
 	configure_file("${CMAKE_SOURCE_DIR}/addin/packaging/WIN/installbat.in" "${CMAKE_BINARY_DIR}/install.bat" @ONLY NEWLINE_STYLE CRLF)
 	install(PROGRAMS "${CMAKE_BINARY_DIR}/install.bat" DESTINATION "${PACK_INSTALL_RUN_DIR}/./.." COMPONENT scripts)
@@ -729,14 +716,13 @@ else(MSVC)
 	file(GLOB VENDOR_ROOT_CONFIG_FILES "${CMAKE_SOURCE_DIR}/addin/hardwarecfg/root-*.ini")
 	install(FILES ${VENDOR_ROOT_CONFIG_FILES} DESTINATION "${PACK_INSTALL_RUN_DIR}/hardwarecfg" COMPONENT scripts)
 	install(PROGRAMS ${BAT_SCRIPTS} DESTINATION "${RVC_BASE_PATH}" COMPONENT scripts)
+	# TODO: rewrite install.sh to match update pacakge.
+	if(NOT PACK_AS_DEB_PKG)
+		install(PROGRAMS "${CMAKE_SOURCE_DIR}/addin/packaging/UOS/install.sh" DESTINATION "${PACK_INSTALL_RUN_DIR}/./.." COMPONENT scripts)
+		install(FILES "${CMAKE_SOURCE_DIR}/addin/packaging/UOS/Readme.txt" DESTINATION "${PACK_INSTALL_RUN_DIR}/./.." COMPONENT scripts)
+	endif(NOT PACK_AS_DEB_PKG)
 endif(MSVC)
 
-# TODO: rewrite install.sh to match update pacakge.
-if(NOT MSVC AND NOT PACK_AS_DEB_PKG)
-	install(PROGRAMS "${CMAKE_SOURCE_DIR}/addin/packaging/UOS/install.sh" DESTINATION "${PACK_INSTALL_RUN_DIR}/./.." COMPONENT scripts)
-	install(FILES "${CMAKE_SOURCE_DIR}/addin/packaging/UOS/Readme.txt" DESTINATION "${PACK_INSTALL_RUN_DIR}/./.." COMPONENT scripts)
-endif(NOT MSVC AND NOT PACK_AS_DEB_PKG)
-
 list(REMOVE_DUPLICATES RVC_CONAN_DEP_LIBS)
 if(CONAN_LIB_DIRS_QT)
 	message(STATUS "remote qt dir:${CONAN_LIB_DIRS_QT}")
@@ -811,7 +797,6 @@ file(GLOB RVC_RESOURCE_FILES LIST_DIRECTORIES FALSE "${CMAKE_SOURCE_DIR}/addin/a
 install(FILES ${RVC_RESOURCE_FILES} DESTINATION ${RVC_RUNTIME_PATH} COMPONENT resources)
 
 install(DIRECTORY "${CONAN_RES_DIRS_AUDIO}" DESTINATION "${PACK_INSTALL_DATA_DIR}" COMPONENT resources)
-#install(DIRECTORY "${CONAN_RES_DIRS_VIDEO}" DESTINATION "${PACK_INSTALL_DATA_DIR}" COMPONENT resources)
 
 if(CONAN_RES_DIRS_SOGOUIME)
 	message(STATUS "include sogou input installation.")
@@ -833,90 +818,6 @@ if(CONAN_RES_DIRS_VENDORFILE)
 	install(DIRECTORY "${CONAN_RES_DIRS_VENDORFILE}" DESTINATION "${PACK_INSTALL_MISCS_DIR}" COMPONENT resources)
 endif(CONAN_RES_DIRS_VENDORFILE)
 
-if(NOT MSVC)
-	if(DEVOPS_ON)
-		set(CHANGELOG_HTML_PATH ${CMAKE_CURRENT_BINARY_DIR}/ChangeLog.html)
-		execute_process(COMMAND python3 --version
-				RESULT_VARIABLE return_code
-				OUTPUT_VARIABLE PYTHON_VERSION_OUTPUT
-				ERROR_VARIABLE PYTHON_VERSION_OUTPUT)
-		if("${return_code}" STREQUAL "0")
-			message("python3 version: ${return_code} =~= ${PYTHON_VERSION_OUTPUT}")
-			# execute_process(COMMAND "which pip" COMMAND "pip" COMMAND "type pip" COMMAND "hash -r")
-			execute_process(COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/md2html.py 
-				${CMAKE_BINARY_DIR}/ChangeLog ${CHANGELOG_HTML_PATH}
-				RESULT_VARIABLE return_code
-				OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-				ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-			message(WARN "exec: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-			string(FIND "${PYTHON_MARKDOWN_ERROR}" "No module named 'markdown'" CheckPos)
-			if("${return_code}" STREQUAL "1" AND NOT ("${CheckPos}" STREQUAL "-1"))
-				message(WARN "install markdown by pip...")
-				execute_process(COMMAND "pip3 install markdown"
-					RESULT_VARIABLE return_code
-					OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-					ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-				message(WARN "install markdown: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-				if("${return_code}" STREQUAL "0")
-					execute_process(COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/md2html.py 
-						${CMAKE_BINARY_DIR}/ChangeLog ${CHANGELOG_HTML_PATH}
-						RESULT_VARIABLE return_code
-						OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-						ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-					message(WARN "exec again: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-				endif()
-			endif()
-		else()
-			message(WARN "py version failed: ${return_code} =~= ${PYTHON_VERSION_OUTPUT} == ${PYTHON_VERSION_OUTPUT}")
-		endif()
-	elseif(WITH_UPDATE_CHANGELOG)
-		set(LOCAL_WWW_PATH "/var/www/html")
-		if(EXISTS ${LOCAL_WWW_PATH} AND IS_DIRECTORY ${LOCAL_WWW_PATH})
-			set(CHANGELOG_HTML_PATH ${LOCAL_WWW_PATH}/index.html)
-			execute_process(COMMAND python --version
-				RESULT_VARIABLE return_code
-				OUTPUT_VARIABLE PYTHON_VERSION_OUTPUT
-				ERROR_VARIABLE PYTHON_VERSION_OUTPUT)
-			if("${return_code}" STREQUAL "0")
-				message("python version: ${return_code} =~= ${PYTHON_VERSION_OUTPUT}")
-				execute_process(COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/md2html.py 
-					${CMAKE_BINARY_DIR}/ChangeLog ${CHANGELOG_HTML_PATH}
-					RESULT_VARIABLE return_code
-					OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-					ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-				message(WARN "exec: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-				string(FIND "${PYTHON_MARKDOWN_ERROR}" "No module named markdown" CheckPos)
-				if("${return_code}" STREQUAL "1" AND NOT ("${CheckPos}" STREQUAL "-1"))
-					message(WARN "install markdown by pip...")
-					execute_process(COMMAND "pip install markdown"
-						RESULT_VARIABLE return_code
-						OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-						ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-					message(WARN "install markdown: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-					if("${return_code}" STREQUAL "0")
-						execute_process(COMMAND python ${CMAKE_CURRENT_SOURCE_DIR}/md2html.py 
-							${CMAKE_BINARY_DIR}/ChangeLog ${CHANGELOG_HTML_PATH}
-							RESULT_VARIABLE return_code
-							OUTPUT_VARIABLE PYTHON_MARKDOWN_OUTPUT
-							ERROR_VARIABLE PYTHON_MARKDOWN_ERROR)
-						message(WARN "exec again: ${return_code} =$= ${PYTHON_MARKDOWN_OUTPUT} == ${PYTHON_MARKDOWN_ERROR}")
-					endif()
-				endif()
-			else()
-				message(WARN "py version failed: ${return_code} =~= ${PYTHON_VERSION_OUTPUT} == ${PYTHON_VERSION_OUTPUT}")
-			endif()
-		else()
-		endif(EXISTS ${LOCAL_WWW_PATH} AND IS_DIRECTORY ${LOCAL_WWW_PATH})
-	endif(DEVOPS_ON)
-
-endif(NOT MSVC)
-
-if(EXISTS ${CHANGELOG_HTML_PATH})
-	install(FILES ${CHANGELOG_HTML_PATH} DESTINATION ${RVC_RESOURCE_PATH} COMPONENT scripts)
-else()
-	message(WARN "no any changelog file.")
-endif()
-
 #appoint the component to install , except header file here.
  #set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
 set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE TRUE)

+ 0 - 10
DevAdapter/CMakeLists.txt

@@ -97,9 +97,6 @@ message(STATUS "lib rely on directory: ${DIFF_PLATFORM_SUB_DIR}")
 if(RVC_INTEGRATE_BUILD)
     #include ErrorCode.h
     include_directories(${RVC_COMMON_INCLUDE_DIR})
-    if(SIMULATE_ON)
-        rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}")
-    endif(SIMULATE_ON)
 endif(RVC_INTEGRATE_BUILD)
 
 macro(rvc_traverse_sub_cmake_dirs)
@@ -184,13 +181,6 @@ macro(rvc_dev_config_library _module_name _module_prefix)
     target_include_directories(${MODULE_FULL_NAME} PRIVATE ${DEVADAPTER_CURRENT_INCLUDES_DIR} ${VENDOR_CURRENT_INCLUDE_DIR})
     target_link_directories(${MODULE_FULL_NAME} PRIVATE ${DEVADAPTER_CURRENT_LIB_DIR} ${VENDOR_CURRENT_LIB_DIR})  
 
-    if(SIMULATE_ON)
-        set_target_properties(${MODULE_FULL_NAME} PROPERTIES 
-            LIBRARY_OUTPUT_DIRECTORY_DEBUG "${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}"
-            LIBRARY_OUTPUT_DIRECTORY_RELEASE "${RVC_INSTALL_PREFIX}${RVC_VENDOR_PATH}"
-        )
-    endif(SIMULATE_ON)
-
     if(MSVC)
         set_property(TARGET ${MODULE_FULL_NAME} PROPERTY FOLDER "devadapter/${CURRENT_VENDOR}/")
     endif(MSVC)

+ 0 - 1
DevAdapter/simulator/cardissuer.1.1/cardissuer_impl.cpp

@@ -110,7 +110,6 @@ ErrorCodeEnum CardIssuerImpl::GetDevCategory(DevCategoryInfo& devCategory)
 	strcpy(devCategory.szType, "szType");
 	strcpy(devCategory.szVendor, "szVendor=cmbszSimulator");
 	return Error_Succeed;
-	return Error_Succeed;
 }
 
 ErrorCodeEnum CardIssuerImpl::Reset()

+ 4 - 3
Framework/libtoolkit/osutil.c

@@ -408,16 +408,17 @@ TOOLKIT_API void osutil_terminate_related_process(char** process_array, const in
                             int r = kill(pid, SIGTERM);
                             if (r != 0) {
                                 printf("kill of pid=%d failed:%d\n", pid, errno);
-
                                 if(0 == kill(pid, SIGKILL))
                                     count++;
                             } else {
-                                count++;
+                                Sleep(200);
+                                if (0 == kill(pid, SIGKILL))
+                                    count++;
                             }
                             break;
                         }
                     }
-                } else {
+                } else if(errno != 2) {
                     printf("%s: open(%s) failed %d!!\n", __FUNCTION__, cmdLinePath, errno);
                 }
             }

+ 1 - 1
Framework/spshell/Widgets/mainwindow.cpp

@@ -59,7 +59,7 @@
 #elif defined(DEVOPS_ON_DEV)/*DevOps流水线编译,Dev环境*/
 #define RVC_TITLE_STRING "RVC Terminal Application DEVver."
 #else/*本地编译等非DevOps环境编译的版本*/
-#define RVC_TITLE_STRING "RVC Terminal Application"
+#define RVC_TITLE_STRING "RVC Terminal Application TESTver."
 #endif
 
 void setRowBackground(const QBrush& brush, QAbstractItemModel* model, int row, const QModelIndex& parent = QModelIndex())

+ 0 - 11
Module/CMakeLists.txt

@@ -23,10 +23,6 @@ if(BUILD_TESTING)
     set(BUILD_MOUDLE_TEST ON)
 endif(BUILD_TESTING)
 
-if(SIMULATE_ON)
-    rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_MODULE_PATH}")
-endif(SIMULATE_ON)
-
 macro(add_module_libraries _module_prefix _module_name _module_version)
     
     string(STRIP ${_module_version} RAW_VERSION_STRING)
@@ -69,13 +65,6 @@ macro(add_module_libraries _module_prefix _module_name _module_version)
     endif(BUILD_MOUDLE_TEST)
 
     add_library(${_module_name} SHARED ${${_module_prefix}_SRCS} ${${_module_name}_TEST_SRCS})
-    if(SIMULATE_ON)
-        set_target_properties( ${_module_name} PROPERTIES LIBRARY_OUTPUT_PATH "${RVC_INSTALL_PREFIX}${RVC_MODULE_PATH}")
-        set_target_properties( ${_module_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${RVC_INSTALL_PREFIX}${RVC_MODULE_PATH}")
-        set_target_properties( ${_module_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG "${RVC_INSTALL_PREFIX}${RVC_MODULE_PATH}")
-        set_target_properties( ${_module_name} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE "${RVC_INSTALL_PREFIX}${RVC_MODULE_PATH}")
-        # etc for the other available configuration types (MinSizeRel, RelWithDebInfo)
-    endif()
 
     target_compile_definitions(${_module_name} PUBLIC "${_module_prefix}_EXPORTS")
     target_include_directories(${_module_name} PRIVATE 

+ 8 - 1
Module/mod_accessauth/AccessAuthFSM.cpp

@@ -893,7 +893,14 @@ unsigned int CAccessAuthFSM::s2_on_event(FSMEvent* pEvent)
 void CAccessAuthFSM::s3_on_entry()
 {
 	LOG_FUNCTION();
-	LogWarn(Severity_Low, Error_Debug, AccessAuthorization_UserErrorCode_Start, "终端准入成功");
+	CSystemStaticInfo si;
+	m_pEntity->GetFunction()->GetSystemStaticInfo(si);
+	if (si.InstallVersion.ToString().IsNullOrEmpty()) {
+		LogWarn(Severity_Low, Error_Debug, AccessAuthorization_UserErrorCode_Start, "终端准入成功");
+	}
+	else {
+		LogWarn(Severity_Low, Error_Debug, AccessAuthorization_UserErrorCode_Start, CSimpleStringA::Format("终端准入成功,版本: %s", si.InstallVersion.ToString().GetData()));
+	}
 }
 
 unsigned int CAccessAuthFSM::s3_on_event(FSMEvent* event)

+ 15 - 0
Module/mod_guiconsole/mainfrm.cpp

@@ -3538,6 +3538,21 @@ LRESULT StartPageDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam)
 	m_pOutput->ModifyStyle(NULL, WS_HSCROLL | WS_VSCROLL);
 
 	CSimpleStringA basicInoShowText(CSimpleStringA("v") + m_baseInfo.strSoftwareVersion + "\r\n" + m_baseInfo.strTerminalNo + "\r\n" + m_baseInfo.strMachineType);
+#ifdef DEVOPS_ON_ST /*DevOps流水线编译,ST环境*/
+#define RVC_TITLE_STRING "STver."
+#elif defined(DEVOPS_ON_UAT)/*DevOps流水线编译,UAT环境*/
+#define RVC_TITLE_STRING "UATver."
+#elif defined(DEVOPS_ON_PRD)/*DevOps流水线编译,PRD环境*/
+#define RVC_TITLE_STRING ""
+#elif defined(DEVOPS_ON_DEV)/*DevOps流水线编译,Dev环境*/
+#define RVC_TITLE_STRING "DEVver."
+#else/*本地编译等非DevOps环境编译的版本*/
+#define RVC_TITLE_STRING "TESTver."
+#endif
+	if (strlen(RVC_TITLE_STRING) > 0) {
+		basicInoShowText.Append("-");
+		basicInoShowText.Append(RVC_TITLE_STRING);
+	}
 	GetDlgItem(IDC_STATIC_BASICINFO).SetWindowTextA(basicInoShowText.GetData());
 	CenterWindow();
 	return 0;

+ 0 - 4
Other/CMakeLists.txt

@@ -1,7 +1,3 @@
-if(SIMULATE_ON)
-	rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_RUNTIME_PATH}")
-endif(SIMULATE_ON)
-
 add_subdirectory(libpublicFun)
 add_subdirectory(acmstrdec)
 add_subdirectory(acmstrenc)

+ 0 - 4
Other/unix/CMakeLists.txt

@@ -1,7 +1,3 @@
-if(SIMULATE_ON)
-	rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_RUNTIME_PATH}")
-endif(SIMULATE_ON)
-
 add_subdirectory(libbizchan)
 
 add_subdirectory(libsharememory)

+ 0 - 4
Other/win/CMakeLists.txt

@@ -1,7 +1,3 @@
-if(SIMULATE_ON)
-	rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_RUNTIME_PATH}")
-endif(SIMULATE_ON)
-
 add_subdirectory(libvideohorflip)
 
 add_subdirectory(libsharememory)

+ 0 - 4
Plugins/CMakeLists.txt

@@ -1,7 +1,3 @@
-if(SIMULATE_ON)
-	rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_RUNTIME_PATH}")
-endif(SIMULATE_ON)
-
 set(PLUGINS_CONAN_DEP_LIBS)
 set(PLUGINS_COMM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include)
 

+ 0 - 4
Tool/CMakeLists.txt

@@ -1,7 +1,3 @@
-if(SIMULATE_ON)
-	rvc_set_library_output_dir("${RVC_INSTALL_PREFIX}${RVC_RUNTIME_PATH}")
-endif(SIMULATE_ON)
-
 #local target
 set(RVCCOMM_LIB RVCComm)
 set(SPBASE_LIB spbase)

+ 0 - 4
addin/cmake/ConfigOptions.cmake

@@ -29,8 +29,6 @@ option(WITH_DEBUG_SYMBOLS "Pack debug symbols to installer" OFF)
 
 option(WITH_THIRD_PARTY "Build third-party components" ON)
 
-option(SIMULATE_ON "/run/version/1.2.3.4/" OFF)
-
 option(BUILD_MODULE "whether build entity module or not" ON)
 
 option(BUILD_TOOLS "whether build tools or not" ON)
@@ -52,8 +50,6 @@ option(WITH_ADDITIONAL_RES "download other resource file or for skipping big fil
 # depreate now 20230420@Gifur
 option(WITH_UPDATE_FORMAT "build the artifictory as update pacakge format" OFF)
 
-option(WITH_UPDATE_CHANGELOG "scheduling producting changelog html format result" OFF)
-
 option(WITH_UNAUTHORIZED_RES "download other resource file or for skipping big file mechanism like hardware driver" OFF)
 
 option(DEVOPS_INSTALL_SWITCH "install at devpos for pkging as zip easily" OFF)

+ 1 - 0
addin/cmake/DependencyConanFiles.cmake

@@ -15,6 +15,7 @@ set(CONAN_ALLPLATFORM_LIB_NAMES
 	libtiff/4.0.9@LR04.02_ThirdParty/testing
 	#include/test
 	Catch/2.13.0@LR04.02_ThirdParty/stable
+	#gtest/1.8.1@LR04.02_ThirdParty/stable
 	#mod_CustMngrAuth mod_uplog, mod_accessauth
 	#skip it, replaced it with RVCFramework ones
 	#jsoncpp/1.9.0@LR04.02_ThirdParty/stable # !!!!support build missing!!!!

+ 64 - 33
addin/packaging/UOS/install.sh

@@ -4,7 +4,32 @@ MY_PATH="`dirname \"$0\"`"              # relative
 MY_PATH="`( cd \"$MY_PATH\" && pwd )`"  # absolutized and normalized
 
 
+function set-title() {
+    if [[ -z "$ORIG" ]]; then
+        ORIG=$PS1
+    fi
+    TITLE="\[\e]2;$*\a\]"
+    PS1=${ORIG}${TITLE}
+}
+set-title 【可视柜台应用程序安装脚本】
+clear
+
+installType=0
+argument1=
+if [ $# -eq 1 ];then
+    echo has arguments: $*
+	argument1=$(echo $1 | awk '{ print tolower($0) }' )
+    if [ "$argument1" = "uninstall" ]; then
+        installType=4
+    elif [ "$argument1" = "pure" ]; then
+        installType=1
+    fi
+else
+    echo no any arguments.
+fi
 echo "[RVCTermianal] === Install Start === "
+echo 安装脚本模式: $installType
+
 curr_timestamp=`date "+%Y%m%d-%H%M%S.%3N"`
 lightdm_file=/etc/lightdm/lightdm.conf
 rvc_pkg_rvc=${MY_PATH}/rvc
@@ -108,18 +133,13 @@ sudo_priviledge()
 
 # check root priviledge
 if [ $(id -u) != 0 ]; then
-    echo "[ERROR] === 该安装脚本需要以ROOT权限启动,请在命令行窗口添加sudo指令执行 'sudo bash $0',如果无法执行相关指令,请先确认系统已开启开发者模式 ==="
+    #红底白字
+    echo -e "\033[41;37m [ERROR] === 该安装脚本需要以ROOT权限启动,请在命令行窗口添加sudo指令执行 'sudo bash $0',如果无法执行相关指令,请先确认系统已开启开发者模式 === \033[0m"
+    echo "10 秒后退出"
+    for i in $(seq 1 10);do echo $i 秒......; sleep 1s; done
     exit 0
 fi
 
-argument1=
-if [ $# -eq 1 ];then
-    echo has arguments: $*
-	argument1=$(echo $1 | awk '{ print tolower($0) }' )
-else
-    echo no any arguments.
-fi
-
 #获取当前登录的用户名称,这里可以考虑用另外一种优化的方法
 rvc_user=$USER
 if [ -z "$rvc_user" -o "$rvc_user" = "root" ]; then
@@ -152,7 +172,7 @@ if [ -z "$rvc_user" -o "$rvc_user" = "root" ]; then
 	rvc_user=$name
 fi
 
-if [ "$argument1" = "uninstall" ]; then
+if [ $installType -eq 4 ]; then
 	rm /etc/xdg/autostart/spexplorerauto.desktop > /dev/null 2>&1
     rm /usr/share/applications/spexplorerauto.desktop > /dev/null 2>&1
     rm -rf /opt/rvc > /dev/null 2>&1
@@ -167,31 +187,35 @@ if [ "$argument1" = "uninstall" ]; then
     papers_bak_dir=/usr/share/wallpapers/deepin_bak
     if [ -d $papers_bak_dir ]; then
         rm -rf $papers_dir/*  > /dev/null 2>&1
-        cp $papers_bak_dir/* $papers_dir
-		rm -rf $papers_bak_dir
+        cp $papers_bak_dir/* $papers_dir > /dev/null 2>&1
+		rm -rf $papers_bak_dir > /dev/null 2>&1
     fi
 	
-	if [ -z "$rvc_user" ]; then
-		echo "[ERROR]: 无法获取当前用户名称(用户名为空),退出程序"
-		exit 1
-	elif [ "$rvc_user" = "root" ]; then
-		echo "[ERROR]: 无法获取当前用户名称(用户名无效),退出程序"
-		exit 2
-	fi
+    if [ -z "$rvc_user" ]; then
+        echo -e "\033[41;37m [ERROR]: 无法获取当前用户名称(用户名为空),退出程序 \033[0m"
+	    exit 1
+    elif [ "$rvc_user" = "root" ]; then
+        echo -e "\033[41;37m [ERROR]: 无法获取当前用户名称(用户名无效),退出程序 \033[0m"
+	    exit 2
+    fi
     rm /home/$rvc_user/Desktop/spexplorerauto.desktop > /dev/null 2>&1
-	exit 0
-fi
 
+    echo [INFO]恢复桌面组件应用程序的执行权限
+    sudo chmod +x /usr/bin/dde-desktop
+    sudo chmod +x /usr/bin/dde-dock
 
-if [ "$argument1" = "pure" ]; then
-    killall -9 spshell > /dev/null 2>&1
-    killall -9 sphost > /dev/null 2>&1
-    killall -9 guardian > /dev/null 2>&1
-    killall -9 uosbrowser > /dev/null 2>&1
-	killall -9 browser > /dev/null 2>&1
-    killall -s 9 `ps -aux | grep browser | awk '{print $2}'` > /dev/null 2>&1
+    echo -e "\033[42;37m [INFO]: === 所有安装步骤执行成功,正常退出=== \033[0m"
+	exit 0
 fi
 
+echo "to clear the rvc terminal processes..."
+killall -9 spshell > /dev/null 2>&1
+killall -9 sphost > /dev/null 2>&1
+killall -9 guardian > /dev/null 2>&1
+killall -9 uosbrowser > /dev/null 2>&1
+killall -9 browser > /dev/null 2>&1
+killall -s 9 `ps -aux | grep browser | awk '{print $2}'` > /dev/null 2>&1
+
 echo "============== previous installation custom scripts start =============="
 user1=$(ps -o user= -p $$ | awk '{print $1}')
 echo "user1: $user1"
@@ -240,6 +264,7 @@ fi
 if [ ! -f $rvc_install_path_hardware_dir/root.ini ]; then
     #delete /opt/Run
     sudo rm -rf ${rvc_install_path_Run_dir} > /dev/null 2>&1
+    sudo rm -rf ${rvc_install_path_rvc_dir} > /dev/null 2>&1
 fi
 
 #copy the Run pkg to run path
@@ -270,7 +295,6 @@ echo "[INFO]: Copy application icon to Resource dir..."
 cp ${rvc_pkg_rvc}/Resources/logo.png ${rvc_install_path_rvc_dir}/Resources
 
 
-
 echo "[INFO]: change the run scripts priviledge..."
 echo ${rvc_install_path_rvc_dir}
 echo ${rvc_install_path_root}/${rel_version_dir}
@@ -293,10 +317,10 @@ echo "============== post installation custom scripts start =============="
 
 sudoers_file=/etc/sudoers
 if [ -z "$rvc_user" ]; then
-	echo "[ERROR]: 无法获取当前用户名称(用户名为空),退出程序"
+    echo -e "\033[41;37m [ERROR]: 无法获取当前用户名称(用户名为空),退出程序 \033[0m"
 	exit 1
 elif [ "$rvc_user" = "root" ]; then
-	echo "[ERROR]: 无法获取当前用户名称(用户名无效),退出程序"
+    echo -e "\033[41;37m [ERROR]: 无法获取当前用户名称(用户名无效),退出程序 \033[0m"
 	exit 2
 fi
 
@@ -326,8 +350,14 @@ if [ $res -eq 0 ]; then
 	cp ${rvc_pkg_rvc}/Resources/spexplorerauto.desktop /etc/xdg/autostart/
 	echo "[INFO]: Copy application icon to desktop..."
 	cp ${rvc_pkg_rvc}/Resources/spexplorerauto.desktop /home/$rvc_user/Desktop
+
+    if [ $installType -eq 1 ]; then
+        echo [INFO]去除桌面组件应用程序的执行权限,实现开机黑屏
+        sudo chmod -x /usr/bin/dde-desktop
+        sudo chmod -x /usr/bin/dde-dock
+    fi
 else
-	echo "[ERROR]: 设置SUDO权限失败!!"
+    echo -e "\033[41;37m [ERROR]: 设置SUDO权限失败!! \033[0m"
 	exit 1
 fi
 
@@ -345,5 +375,6 @@ echo "[INFO]: set menu tool as hidden mode done!"
 
 echo "============== post installation custom scripts done =============="
 
-echo "[INFO]: === 所有步骤执行成功,正常退出=== "
+#绿底白字
+echo -e "\033[42;37m [INFO]: === 所有安装步骤执行成功,正常退出=== \033[0m"
 exit 0

+ 21 - 0
addin/packaging/UOS/spexplorerauto.target

@@ -0,0 +1,21 @@
+#  SPDX-License-Identifier: LGPL-2.1+
+#
+#  This file is part of systemd.
+#
+#  systemd is free software; you can redistribute it and/or modify it
+#  under the terms of the GNU Lesser General Public License as published by
+#  the Free Software Foundation; either version 2.1 of the License, or
+#  (at your option) any later version.
+
+[Unit]
+Description=RVC Terminal Application AutoStart
+
+[Service]
+Type=simple
+ExecStart=/opt/Run/version/sudo_spexplorer.sh
+Restart=always
+
+[Install]
+WantedBy=default.target
+
+#systemctl --user enable spexplorerauto

+ 165 - 98
addin/packaging/WIN/installbat.in

@@ -10,7 +10,11 @@ exit /B
 :UACAdmin
 
 color 0F
+@cls
 title 【可视柜台应用程序安装脚本】
+for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
+  set "DEL=%%a"
+)
 
 cd /d "%~dp0"
 
@@ -27,13 +31,16 @@ cd /d "%~dp0"
 )
 @set installType=@INSTALLSCRIPT_TYPE@
 echo [RVCTermianal] ========== Install Start ==========
+@echo 安装脚本模式: %installType%
 
 @set ROOT=%cd%
 @set rvc_src_path_rvc_dir=%ROOT%\rvc
 @set rvc_src_path_Run_dir=%ROOT%\Run
-@set rvc_src_path_runbase_dir=%ROOT%\Runtime
+@set rvc_src_path_rvc_res_dir=%rvc_src_path_rvc_dir%\Resources
 @set rvc_install_path_root=C:
 @set sysdisk=1
+@set AutoStartDir=C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
+@set AutoStartDir2=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
 @if exist "D:\\" (
 	@if exist "D:\\Run\\version\\vtm.exe" (
 		@set rvc_install_path_root=D:
@@ -45,16 +52,125 @@ echo [RVCTermianal] ========== Install Start ==========
 ) else (
 	@set rvc_install_path_root=C:
 )
-@set rvc_runtime_dir=%rvc_install_path_root%\VTMDepencies
+@set lnkPath=spexplorerauto.lnk
+
+tasklist /nh | find /i "spshell.exe"
+@if errorlevel 1 (
+	@echo [INFO] 可视柜台进程不存在,跳过进程清理
+) else (
+	@echo [INFO] 检测到可视柜台进程存在!5s 后将清理可视柜台相关进程
+	@for /l %%a in (1, 1, 5) do (
+		timeout 1 > nul
+		@echo %%a秒…… 如果不想清理可视柜台应用进程,请及时关闭此窗口!
+	)
+	@echo [INFO] 开始清理可视柜台相关进程……
+	TASKKILL /F /IM spshell.exe
+	TASKKILL /F /IM guardian.exe
+	TASKKILL /F /IM cefclient.exe
+
+	@for /f "tokens=1,2 delims= " %%a in ('tasklist /m ^| findstr "sphost.exe"') do (
+		@echo name=%%a, PID = %%b, and will kill it.
+		TASKKILL /F /PID %%a
+	)
+)
+
+@echo rvc_install_path_root=%rvc_install_path_root%
+@echo rvc_src_path_Run_dir=%rvc_src_path_Run_dir%
 
-@echo install type: %installType%
+@set rvc_install_path_rvc_dir=%rvc_install_path_root%\rvc
+@set rvc_install_path_rvc_res_dir=%rvc_install_path_root%\rvc\Resources
+@set rvc_install_path_Run_dir=%rvc_install_path_root%\Run
+@set rvc_install_path_hardware_dir=%rvc_install_path_Run_dir%\hardwarecfg
+@set rvc_install_path_versions_dir=%rvc_install_path_Run_dir%\version
+
+@echo rvc_install_path_rvc_dir=%rvc_install_path_rvc_dir%
+@echo rvc_install_path_rvc_res_dir=%rvc_install_path_rvc_res_dir%
+@echo rvc_install_path_Run_dir=%rvc_install_path_Run_dir%
+@echo rvc_install_path_hardware_dir=%rvc_install_path_hardware_dir%
+@echo rvc_install_path_versions_dir=%rvc_install_path_versions_dir%
+
+@if exist %rvc_install_path_hardware_dir%\root.ini (
+	@echo 存在root.ini文件,跳过版本清理操作
+) else (
+	@if exist %rvc_install_path_versions_dir% (
+		@echo 移除旧有应用版本文件
+		@if exist %rvc_install_path_Run_dir% rd /S /Q %rvc_install_path_Run_dir%
+		@if exist %rvc_install_path_rvc_dir% rd /S /Q %rvc_install_path_rvc_dir%
+	)
+)
+
+@if %installType% equ 4 (
+	@if exist %rvc_install_path_Run_dir% rd /S /Q %rvc_install_path_Run_dir%
+	@if exist %rvc_install_path_rvc_dir% rd /S /Q %rvc_install_path_rvc_dir%
+	@goto setAutoStartWithRegist
+)
+
+@if not exist "%rvc_install_path_rvc_dir%" md "%rvc_install_path_rvc_dir%"
+@if not exist "%rvc_install_path_rvc_res_dir%" md "%rvc_install_path_rvc_res_dir%"
+@if not exist "%rvc_install_path_Run_dir%" md "%rvc_install_path_Run_dir%"
+@if not exist "%rvc_install_path_hardware_dir%" md "%rvc_install_path_hardware_dir%"
+@if not exist "%rvc_install_path_versions_dir%" md "%rvc_install_path_versions_dir%"
+
+@echo 【0/1】拷贝RVC目录...
+@xcopy %rvc_src_path_rvc_dir% %rvc_install_path_rvc_dir%  /E/Y
+@echo 【1/1】拷贝RVC目录OK!
+
+@echo 【1/2】拷贝终端版本...
+@if exist %rvc_src_path_Run_dir%\hardwarecfg ( xcopy %rvc_src_path_Run_dir%\hardwarecfg %rvc_install_path_hardware_dir%  /E/Y/Q )
+@xcopy %rvc_src_path_Run_dir%\version %rvc_install_path_versions_dir%  /E/Y
+@echo 【2/2】拷贝终端版本OK!
+
+@echo 【2/3】设置系统桌面壁纸
+@set FileCount=0
+@set desk_path=%USERPROFILE%\Desktop
+@echo desk_path=%desk_path%
+@if %installType% equ 1 (
+	@for /d %%a in (%desk_path%\*) do (
+		@rd /S /Q %%a
+	)
+	@for %%a in (%desk_path%\*) do (
+		@del %%a
+	)
+) else (
+	@for %%a in (%desk_path%\*) do (
+		set /a FileCount+=1
+		@echo %%a
+	)
+	@if !FileCount! neq 0 (
+		@call :ColorText E0 "[WARN] 桌面不允许留存任何其他无关文件!"
+	)
+)
+
+@set WallpaperPath=%rvc_install_path_rvc_res_dir%\WallPaper1920.png
+@if not exist C:\Windows\Web\Wallpaper\WallPaper1920.png (
+	@if exist "C:\Windows\Web\Wallpaper" (
+		@copy %WallpaperPath% C:\Windows\Web\Wallpaper
+		@set WallpaperPath=C:\Windows\Web\Wallpaper\WallPaper1920.png
+	)
+) else (
+	@echo 指定壁纸已存在系统目录
+	@set WallpaperPath=C:\Windows\Web\Wallpaper\WallPaper1920.png
+)
+@echo WallpaperPath=%WallpaperPath%
+@if %installType% equ 1 (
+	@rem 生产版本设置壁纸
+	reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d %WallpaperPath% /f 
+	reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallpaperStyle /t REG_DWORD /d 2 /f 
+	RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters	
+	@rem taskkill /f /im explorer.exe
+	@rem cmd /c start explorer
+)
+@echo 【3/3】设置系统桌面壁纸OK!
+
+
+@echo 【3/4】设置可视柜台应用程序开机自启动
 @if %installType% neq 1 (
 	@if %installType% neq 4 (
-		@echo 跳过设置开机自启动
-		@goto SkipAutostartSet
+		@goto setAutoStartWithStartup
 	)
 )
-
+@rem 生产安装和卸载模式才执行
+:setAutoStartWithRegist
 @echo 读取注册表信息,判断是否已经设置开机自启动,如果未设置或者之前设置为脚本自启动,修改为通过VTM.exe自启动
 @set regFile=%TEMP%\rvc_spshellautostart.reg
 @set regTmpFile=%cd%\rvckey.txt
@@ -77,7 +193,7 @@ regedit /e %regFile% "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVe
 	@echo 检测到未设置为开机自启动模式
 	@set explorerNormal=1
 ) else if "%explorerKey%" == "d:\\run\\version\\vtm.exe" (
-	@echo 检测到已设置为VTM.exe开机自启动模式
+	@call :ColorText 2F "检测到已设置为VTM.exe开机自启动模式"
 	@set needSetAutoStartFlag=0
 ) else if "%explorerKey%" == "wscript d:\\run\\version\\spexplorerfast.vbs" (
 	@echo 检测到已设置为VBS脚本开机自启动模式
@@ -113,118 +229,60 @@ regedit /e %regFile% "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVe
 		@del %regFile%
 		@rem @set poweroffPC=2
 	)
-)
-
-@echo 结束设置可视柜台应用程序开机自启动策略
-:SkipAutostartSet
-
-tasklist /nh | find /i "spshell.exe"
-@if errorlevel 1 (
-	@echo [INFO] 可视柜台进程不存在,跳过进程清理
-) else (
-	@echo [INFO] 检测到可视柜台进程存在!5s 后将清理可视柜台相关进程
-	@for /l %%a in (1, 1, 5) do (
-		timeout 1 > nul
-		@echo %%a秒…… 如果不想清理可视柜台应用进程,请及时关闭此窗口!
+	@echo 移除自启动文件
+	@echo AutoStartDir=%AutoStartDir%
+	@echo AutoStartDir2=%AutoStartDir2%
+	@if exist "%AutoStartDir%\%lnkPath%" (
+		@echo 移除自启动文件1
+		@del "%AutoStartDir%\%lnkPath%"
 	)
-	@echo [INFO] 开始清理可视柜台相关进程……
-	TASKKILL /F /IM spshell.exe
-	TASKKILL /F /IM guardian.exe
-	TASKKILL /F /IM cefclient.exe
-
-	@for /f "tokens=1,2 delims= " %%a in ('tasklist /m ^| findstr "sphost.exe"') do (
-		@echo name=%%a, PID = %%b, and will kill it.
-		TASKKILL /F /PID %%a
+	@if exist "%AutoStartDir2%\%lnkPath%" (
+		@echo 移除自启动文件2
+		@del "%AutoStartDir2%\%lnkPath%"
 	)
+	@goto End
 )
+@goto DoneAutostartSet
 
-@echo rvc_install_path_root=%rvc_install_path_root%
-@echo rvc_src_path_Run_dir=%rvc_src_path_Run_dir%
-
-@set rvc_install_path_rvc_dir=%rvc_install_path_root%\rvc
-@set rvc_install_path_Run_dir=%rvc_install_path_root%\Run
-@set rvc_install_path_hardware_dir=%rvc_install_path_Run_dir%\hardwarecfg
-@set rvc_install_path_versions_dir=%rvc_install_path_Run_dir%\version
-
-@echo rvc_install_path_rvc_dir=%rvc_install_path_rvc_dir%
-@echo rvc_install_path_Run_dir=%rvc_install_path_Run_dir%
-@echo rvc_install_path_hardware_dir=%rvc_install_path_hardware_dir%
-@echo rvc_install_path_versions_dir=%rvc_install_path_versions_dir%
-
-@if not exist "%rvc_install_path_rvc_dir%" md "%rvc_install_path_rvc_dir%"
-@if not exist "%rvc_install_path_Run_dir%" md "%rvc_install_path_Run_dir%"
-@if not exist "%rvc_install_path_hardware_dir%" md "%rvc_install_path_hardware_dir%"
-@if not exist "%rvc_install_path_versions_dir%" md "%rvc_install_path_versions_dir%"
-
-@echo 【0/1】拷贝RVC目录...
-@xcopy %rvc_src_path_rvc_dir% %rvc_install_path_rvc_dir%  /E/Y/Q
-@echo 【1/1】拷贝RVC目录OK!
-
-
-@echo 【1/2】拷贝终端版本...
-@if exist %rvc_src_path_Run_dir%\hardwarecfg ( xcopy %rvc_src_path_Run_dir%\hardwarecfg %rvc_install_path_hardware_dir%  /E/Y/Q )
-@xcopy %rvc_src_path_Run_dir%\version %rvc_install_path_versions_dir%  /E/Y/Q
-@echo 【2/2】拷贝终端版本OK!
-
-@rem 不再分离出基础库文件
-@goto SkipInstallRuntime
-@echo 运行时基础文件存放路径 %rvc_runtime_dir%
-@if exist %rvc_runtime_dir% rd /S /Q %rvc_runtime_dir%
-if not exist "%rvc_runtime_dir%" md "%rvc_runtime_dir%"
-
-@echo 【2/3】拷贝基础运行时依赖文件...
-@xcopy %rvc_src_path_runbase_dir% %rvc_runtime_dir%  /E/Y/Q
-@echo 【3/3】拷贝基础运行时依赖文件OK!
-
-@echo 【3/4】设置系统环境变量...
-@set OldPath=%PATH%
-@set /a maxlen=1024
-@set /a num=0
-@set /a updateFlag=0
-@echo current path: %OldPath%
-@echo "%OldPath%" | findstr "%rvc_runtime_dir%" > nul && (
-	@echo [INFO]: 系统变量中已包含基础运行库文件目录路径
-) || (
-	@echo [INFO]: 系统变量中不包含基础运行库文件目录路径,开始设置...
-	@call :stringLenth "%OldPath%" num
-	@set updateFlag=1
-)
-@if %updateFlag% equ 1 (
-	@echo [DEBUG]: length: %num%
-	@if %num% geq 1024 (
-		@echo [ERROR] 已有的环境变量内容大于1024,无法通过程序更新系统环境PATH,请手工将值%rvc_runtime_dir%添加到PATH系统环境中,然后再运行此安装脚本
-		@goto InstallError
-	)
+:setAutoStartWithStartup
+@rem 移除旧有的可视柜台自启动快捷键(通过安装程序自动生成的)
+@for %%i in ("%AutoStartDir2%\招商银行可视柜台*.lnk") do (
+	@echo %%i
+	@del "%%i"
 )
+@set targetPath=%rvc_install_path_versions_dir%\vtm.exe
+mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""startup"") & ""\%lnkPath%""):b.TargetPath=""%targetPath%"":b.WorkingDirectory=""%rvc_install_path_versions_dir%"":b.Description=""招行可视柜台终端应用"":b.Save:close")
+@rem ResourceWatcher:可视柜台.lnk
+@rem RVCTerminalApplication:招商银行可视柜台.lnk
+@rem :Set b1=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnkPath%""):b1.TargetPath=""%targetPath%"":b1.WorkingDirectory=""%rvc_install_path_versions_dir%"":b1.Description=""招行可视柜台终端应用"":b1.Save:close
 
-@echo 【4/4】设置系统环境变量成功
+:DoneAutostartSet
+@echo 【4/4】设置可视柜台应用程序开机自启动OK! 
 
-:SkipInstallRuntime
-
-@echo 【5/5】 打开版本所在文件夹
+@echo 【5/5】打开应用版本所在目录
 @start %rvc_install_path_versions_dir%
 
-
 @goto End
 :InstallError
 @set ret=1
 
 :End
-
-
 @if "%ret%" == "1" (
-	@echo [ERROR]: 安装失败,具体失败步骤见上方描述!!
+	@call :ColorText 4F "[ERROR] 安装失败,具体失败步骤见上方描述!!"
 ) else (
-	@if %poweroffPC% equ 2 ( echo [INFO]: 3s 后自动重启设备 )
-	@if %poweroffPC% equ 1 ( echo [INFO]: 3s 后自动关机 )
-	@if %poweroffPC% equ 0 ( echo [INFO]: 3s 后自动退出该执行脚本 )
-	@for /l %%a in (1, 1, 3) do (
+	@if %poweroffPC% equ 2 ( echo [INFO]: 5s 后自动重启设备 )
+	@if %poweroffPC% equ 1 ( echo [INFO]: 5s 后自动关机 )
+	@if %poweroffPC% equ 0 ( 
+		@call :ColorText 2F "[INFO] ===所有安装步骤执行成功,正常退出==="
+		@echo [INFO]: 5s 后自动退出该执行脚本
+	)
+	@for /l %%a in (1, 1, 5) do (
 			timeout 1 > nul
 			@echo [DEBUG]: %%a秒……
 		)
 	@if %poweroffPC% equ 2 ( shutdown /r /t 0 )
 	@if %poweroffPC% equ 1 ( shutdown /s /t 0 )
-	@if %poweroffPC% equ 0 ( echo [INFO]: === 所有步骤执行成功,正常退出=== )	
+	
 )
 
 @exit %ret%
@@ -246,3 +304,12 @@ if not exist "%rvc_runtime_dir%" md "%rvc_runtime_dir%"
 	@goto :eof
 
 
+:ColorText
+@rem color 2F 这里的2代表背景,F代表字色
+@rem 0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、
+@rem A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白
+	<nul set /p ".=%DEL%" > "%~2"
+	@findstr /v /a:%1 /R "^$" "%~2" nul
+	@del "%~2" > nul 2>&1
+	@echo.
+	@goto :eof

+ 165 - 98
addin/packaging/WIN/install.bat → addin/packaging/WIN/original.bat

@@ -10,7 +10,11 @@ exit /B
 :UACAdmin
 
 color 0F
+@cls
 title 【可视柜台应用程序安装脚本】
+for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
+  set "DEL=%%a"
+)
 
 cd /d "%~dp0"
 
@@ -34,13 +38,16 @@ cd /d "%~dp0"
 )
 
 echo [RVCTermianal] ========== Install Start ==========
+@echo 安装脚本模式: %installType%
 
 @set ROOT=%cd%
 @set rvc_src_path_rvc_dir=%ROOT%\rvc
 @set rvc_src_path_Run_dir=%ROOT%\Run
-@set rvc_src_path_runbase_dir=%ROOT%\Runtime
+@set rvc_src_path_rvc_res_dir=%rvc_src_path_rvc_dir%\Resources
 @set rvc_install_path_root=C:
 @set sysdisk=1
+@set AutoStartDir=C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
+@set AutoStartDir2=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
 @if exist "D:\\" (
 	@if exist "D:\\Run\\version\\vtm.exe" (
 		@set rvc_install_path_root=D:
@@ -52,16 +59,125 @@ echo [RVCTermianal] ========== Install Start ==========
 ) else (
 	@set rvc_install_path_root=C:
 )
-@set rvc_runtime_dir=%rvc_install_path_root%\VTMDepencies
+@set lnkPath=spexplorerauto.lnk
+
+tasklist /nh | find /i "spshell.exe"
+@if errorlevel 1 (
+	@echo [INFO] 可视柜台进程不存在,跳过进程清理
+) else (
+	@echo [INFO] 检测到可视柜台进程存在!5s 后将清理可视柜台相关进程
+	@for /l %%a in (1, 1, 5) do (
+		timeout 1 > nul
+		@echo %%a秒…… 如果不想清理可视柜台应用进程,请及时关闭此窗口!
+	)
+	@echo [INFO] 开始清理可视柜台相关进程……
+	TASKKILL /F /IM spshell.exe
+	TASKKILL /F /IM guardian.exe
+	TASKKILL /F /IM cefclient.exe
+
+	@for /f "tokens=1,2 delims= " %%a in ('tasklist /m ^| findstr "sphost.exe"') do (
+		@echo name=%%a, PID = %%b, and will kill it.
+		TASKKILL /F /PID %%a
+	)
+)
+
+@echo rvc_install_path_root=%rvc_install_path_root%
+@echo rvc_src_path_Run_dir=%rvc_src_path_Run_dir%
 
-@echo install type: %installType%
+@set rvc_install_path_rvc_dir=%rvc_install_path_root%\rvc
+@set rvc_install_path_rvc_res_dir=%rvc_install_path_root%\rvc\Resources
+@set rvc_install_path_Run_dir=%rvc_install_path_root%\Run
+@set rvc_install_path_hardware_dir=%rvc_install_path_Run_dir%\hardwarecfg
+@set rvc_install_path_versions_dir=%rvc_install_path_Run_dir%\version
+
+@echo rvc_install_path_rvc_dir=%rvc_install_path_rvc_dir%
+@echo rvc_install_path_rvc_res_dir=%rvc_install_path_rvc_res_dir%
+@echo rvc_install_path_Run_dir=%rvc_install_path_Run_dir%
+@echo rvc_install_path_hardware_dir=%rvc_install_path_hardware_dir%
+@echo rvc_install_path_versions_dir=%rvc_install_path_versions_dir%
+
+@if exist %rvc_install_path_hardware_dir%\root.ini (
+	@echo 存在root.ini文件,跳过版本清理操作
+) else (
+	@if exist %rvc_install_path_versions_dir% (
+		@echo 移除旧有应用版本文件
+		@if exist %rvc_install_path_Run_dir% rd /S /Q %rvc_install_path_Run_dir%
+		@if exist %rvc_install_path_rvc_dir% rd /S /Q %rvc_install_path_rvc_dir%
+	)
+)
+
+@if %installType% equ 4 (
+	@if exist %rvc_install_path_Run_dir% rd /S /Q %rvc_install_path_Run_dir%
+	@if exist %rvc_install_path_rvc_dir% rd /S /Q %rvc_install_path_rvc_dir%
+	@goto setAutoStartWithRegist
+)
+
+@if not exist "%rvc_install_path_rvc_dir%" md "%rvc_install_path_rvc_dir%"
+@if not exist "%rvc_install_path_rvc_res_dir%" md "%rvc_install_path_rvc_res_dir%"
+@if not exist "%rvc_install_path_Run_dir%" md "%rvc_install_path_Run_dir%"
+@if not exist "%rvc_install_path_hardware_dir%" md "%rvc_install_path_hardware_dir%"
+@if not exist "%rvc_install_path_versions_dir%" md "%rvc_install_path_versions_dir%"
+
+@echo 【0/1】拷贝RVC目录...
+@xcopy %rvc_src_path_rvc_dir% %rvc_install_path_rvc_dir%  /E/Y
+@echo 【1/1】拷贝RVC目录OK!
+
+@echo 【1/2】拷贝终端版本...
+@if exist %rvc_src_path_Run_dir%\hardwarecfg ( xcopy %rvc_src_path_Run_dir%\hardwarecfg %rvc_install_path_hardware_dir%  /E/Y/Q )
+@xcopy %rvc_src_path_Run_dir%\version %rvc_install_path_versions_dir%  /E/Y
+@echo 【2/2】拷贝终端版本OK!
+
+@echo 【2/3】设置系统桌面壁纸
+@set FileCount=0
+@set desk_path=%USERPROFILE%\Desktop
+@echo desk_path=%desk_path%
+@if %installType% equ 1 (
+	@for /d %%a in (%desk_path%\*) do (
+		@rd /S /Q %%a
+	)
+	@for %%a in (%desk_path%\*) do (
+		@del %%a
+	)
+) else (
+	@for %%a in (%desk_path%\*) do (
+		set /a FileCount+=1
+		@echo %%a
+	)
+	@if !FileCount! neq 0 (
+		@call :ColorText E0 "[WARN] 桌面不允许留存任何其他无关文件!"
+	)
+)
+
+@set WallpaperPath=%rvc_install_path_rvc_res_dir%\WallPaper1920.png
+@if not exist C:\Windows\Web\Wallpaper\WallPaper1920.png (
+	@if exist "C:\Windows\Web\Wallpaper" (
+		@copy %WallpaperPath% C:\Windows\Web\Wallpaper
+		@set WallpaperPath=C:\Windows\Web\Wallpaper\WallPaper1920.png
+	)
+) else (
+	@echo 指定壁纸已存在系统目录
+	@set WallpaperPath=C:\Windows\Web\Wallpaper\WallPaper1920.png
+)
+@echo WallpaperPath=%WallpaperPath%
+@if %installType% equ 1 (
+	@rem 生产版本设置壁纸
+	reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d %WallpaperPath% /f 
+	reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallpaperStyle /t REG_DWORD /d 2 /f 
+	RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters	
+	@rem taskkill /f /im explorer.exe
+	@rem cmd /c start explorer
+)
+@echo 【3/3】设置系统桌面壁纸OK!
+
+
+@echo 【3/4】设置可视柜台应用程序开机自启动
 @if %installType% neq 1 (
 	@if %installType% neq 4 (
-		@echo 跳过设置开机自启动
-		@goto SkipAutostartSet
+		@goto setAutoStartWithStartup
 	)
 )
-
+@rem 生产安装和卸载模式才执行
+:setAutoStartWithRegist
 @echo 读取注册表信息,判断是否已经设置开机自启动,如果未设置或者之前设置为脚本自启动,修改为通过VTM.exe自启动
 @set regFile=%TEMP%\rvc_spshellautostart.reg
 @set regTmpFile=%cd%\rvckey.txt
@@ -84,7 +200,7 @@ regedit /e %regFile% "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVe
 	@echo 检测到未设置为开机自启动模式
 	@set explorerNormal=1
 ) else if "%explorerKey%" == "d:\\run\\version\\vtm.exe" (
-	@echo 检测到已设置为VTM.exe开机自启动模式
+	@call :ColorText 2F "检测到已设置为VTM.exe开机自启动模式"
 	@set needSetAutoStartFlag=0
 ) else if "%explorerKey%" == "wscript d:\\run\\version\\spexplorerfast.vbs" (
 	@echo 检测到已设置为VBS脚本开机自启动模式
@@ -120,118 +236,60 @@ regedit /e %regFile% "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVe
 		@del %regFile%
 		@rem @set poweroffPC=2
 	)
-)
-
-@echo 结束设置可视柜台应用程序开机自启动策略
-:SkipAutostartSet
-
-tasklist /nh | find /i "spshell.exe"
-@if errorlevel 1 (
-	@echo [INFO] 可视柜台进程不存在,跳过进程清理
-) else (
-	@echo [INFO] 检测到可视柜台进程存在!5s 后将清理可视柜台相关进程
-	@for /l %%a in (1, 1, 5) do (
-		timeout 1 > nul
-		@echo %%a秒…… 如果不想清理可视柜台应用进程,请及时关闭此窗口!
+	@echo 移除自启动文件
+	@echo AutoStartDir=%AutoStartDir%
+	@echo AutoStartDir2=%AutoStartDir2%
+	@if exist "%AutoStartDir%\%lnkPath%" (
+		@echo 移除自启动文件1
+		@del "%AutoStartDir%\%lnkPath%"
 	)
-	@echo [INFO] 开始清理可视柜台相关进程……
-	TASKKILL /F /IM spshell.exe
-	TASKKILL /F /IM guardian.exe
-	TASKKILL /F /IM cefclient.exe
-
-	@for /f "tokens=1,2 delims= " %%a in ('tasklist /m ^| findstr "sphost.exe"') do (
-		@echo name=%%a, PID = %%b, and will kill it.
-		TASKKILL /F /PID %%a
+	@if exist "%AutoStartDir2%\%lnkPath%" (
+		@echo 移除自启动文件2
+		@del "%AutoStartDir2%\%lnkPath%"
 	)
+	@goto End
 )
+@goto DoneAutostartSet
 
-@echo rvc_install_path_root=%rvc_install_path_root%
-@echo rvc_src_path_Run_dir=%rvc_src_path_Run_dir%
-
-@set rvc_install_path_rvc_dir=%rvc_install_path_root%\rvc
-@set rvc_install_path_Run_dir=%rvc_install_path_root%\Run
-@set rvc_install_path_hardware_dir=%rvc_install_path_Run_dir%\hardwarecfg
-@set rvc_install_path_versions_dir=%rvc_install_path_Run_dir%\version
-
-@echo rvc_install_path_rvc_dir=%rvc_install_path_rvc_dir%
-@echo rvc_install_path_Run_dir=%rvc_install_path_Run_dir%
-@echo rvc_install_path_hardware_dir=%rvc_install_path_hardware_dir%
-@echo rvc_install_path_versions_dir=%rvc_install_path_versions_dir%
-
-@if not exist "%rvc_install_path_rvc_dir%" md "%rvc_install_path_rvc_dir%"
-@if not exist "%rvc_install_path_Run_dir%" md "%rvc_install_path_Run_dir%"
-@if not exist "%rvc_install_path_hardware_dir%" md "%rvc_install_path_hardware_dir%"
-@if not exist "%rvc_install_path_versions_dir%" md "%rvc_install_path_versions_dir%"
-
-@echo 【0/1】拷贝RVC目录...
-@xcopy %rvc_src_path_rvc_dir% %rvc_install_path_rvc_dir%  /E/Y/Q
-@echo 【1/1】拷贝RVC目录OK!
-
-
-@echo 【1/2】拷贝终端版本...
-@if exist %rvc_src_path_Run_dir%\hardwarecfg ( xcopy %rvc_src_path_Run_dir%\hardwarecfg %rvc_install_path_hardware_dir%  /E/Y/Q )
-@xcopy %rvc_src_path_Run_dir%\version %rvc_install_path_versions_dir%  /E/Y/Q
-@echo 【2/2】拷贝终端版本OK!
-
-@rem 不再分离出基础库文件
-@goto SkipInstallRuntime
-@echo 运行时基础文件存放路径 %rvc_runtime_dir%
-@if exist %rvc_runtime_dir% rd /S /Q %rvc_runtime_dir%
-if not exist "%rvc_runtime_dir%" md "%rvc_runtime_dir%"
-
-@echo 【2/3】拷贝基础运行时依赖文件...
-@xcopy %rvc_src_path_runbase_dir% %rvc_runtime_dir%  /E/Y/Q
-@echo 【3/3】拷贝基础运行时依赖文件OK!
-
-@echo 【3/4】设置系统环境变量...
-@set OldPath=%PATH%
-@set /a maxlen=1024
-@set /a num=0
-@set /a updateFlag=0
-@echo current path: %OldPath%
-@echo "%OldPath%" | findstr "%rvc_runtime_dir%" > nul && (
-	@echo [INFO]: 系统变量中已包含基础运行库文件目录路径
-) || (
-	@echo [INFO]: 系统变量中不包含基础运行库文件目录路径,开始设置...
-	@call :stringLenth "%OldPath%" num
-	@set updateFlag=1
-)
-@if %updateFlag% equ 1 (
-	@echo [DEBUG]: length: %num%
-	@if %num% geq 1024 (
-		@echo [ERROR] 已有的环境变量内容大于1024,无法通过程序更新系统环境PATH,请手工将值%rvc_runtime_dir%添加到PATH系统环境中,然后再运行此安装脚本
-		@goto InstallError
-	)
+:setAutoStartWithStartup
+@rem 移除旧有的可视柜台自启动快捷键(通过安装程序自动生成的)
+@for %%i in ("%AutoStartDir2%\招商银行可视柜台*.lnk") do (
+	@echo %%i
+	@del "%%i"
 )
+@set targetPath=%rvc_install_path_versions_dir%\vtm.exe
+mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""startup"") & ""\%lnkPath%""):b.TargetPath=""%targetPath%"":b.WorkingDirectory=""%rvc_install_path_versions_dir%"":b.Description=""招行可视柜台终端应用"":b.Save:close")
+@rem ResourceWatcher:可视柜台.lnk
+@rem RVCTerminalApplication:招商银行可视柜台.lnk
+@rem :Set b1=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnkPath%""):b1.TargetPath=""%targetPath%"":b1.WorkingDirectory=""%rvc_install_path_versions_dir%"":b1.Description=""招行可视柜台终端应用"":b1.Save:close
 
-@echo 【4/4】设置系统环境变量成功
+:DoneAutostartSet
+@echo 【4/4】设置可视柜台应用程序开机自启动OK! 
 
-:SkipInstallRuntime
-
-@echo 【5/5】 打开版本所在文件夹
+@echo 【5/5】打开应用版本所在目录
 @start %rvc_install_path_versions_dir%
 
-
 @goto End
 :InstallError
 @set ret=1
 
 :End
-
-
 @if "%ret%" == "1" (
-	@echo [ERROR]: 安装失败,具体失败步骤见上方描述!!
+	@call :ColorText 4F "[ERROR] 安装失败,具体失败步骤见上方描述!!"
 ) else (
-	@if %poweroffPC% equ 2 ( echo [INFO]: 3s 后自动重启设备 )
-	@if %poweroffPC% equ 1 ( echo [INFO]: 3s 后自动关机 )
-	@if %poweroffPC% equ 0 ( echo [INFO]: 3s 后自动退出该执行脚本 )
-	@for /l %%a in (1, 1, 3) do (
+	@if %poweroffPC% equ 2 ( echo [INFO]: 5s 后自动重启设备 )
+	@if %poweroffPC% equ 1 ( echo [INFO]: 5s 后自动关机 )
+	@if %poweroffPC% equ 0 ( 
+		@call :ColorText 2F "[INFO] ===所有安装步骤执行成功,正常退出==="
+		@echo [INFO]: 5s 后自动退出该执行脚本
+	)
+	@for /l %%a in (1, 1, 5) do (
 			timeout 1 > nul
 			@echo [DEBUG]: %%a秒……
 		)
 	@if %poweroffPC% equ 2 ( shutdown /r /t 0 )
 	@if %poweroffPC% equ 1 ( shutdown /s /t 0 )
-	@if %poweroffPC% equ 0 ( echo [INFO]: === 所有步骤执行成功,正常退出=== )	
+	
 )
 
 @exit %ret%
@@ -253,3 +311,12 @@ if not exist "%rvc_runtime_dir%" md "%rvc_runtime_dir%"
 	@goto :eof
 
 
+:ColorText
+@rem color 2F 这里的2代表背景,F代表字色
+@rem 0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、
+@rem A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白
+	<nul set /p ".=%DEL%" > "%~2"
+	@findstr /v /a:%1 /R "^$" "%~2" nul
+	@del "%~2" > nul 2>&1
+	@echo.
+	@goto :eof