一种基于Windows平台的第三方软件语言切换方法及处理终端技术

技术编号:39144486 阅读:9 留言:0更新日期:2023-10-23 14:56
本发明专利技术公开一种基于Windows平台的第三方软件语言切换方法及处理终端,方法包括:接收启动第三方软件的指令后,弹出预先开发的语言切换窗体,接收用户在语言切换窗体选择将第三方软件语言切换至目标语言的指令;获取第三方软件的主窗体句柄,枚举出主窗体中的所有控件,获取控件显示标题,以及获得控件的位置信息,从而得到主窗体上的每一个控件、控件的标题和控件大小;根据获得主窗体的所有控件和各个控件的显示内容,为每一个控件生成对应的一个语言为目标语言的控件,在成功启动第三方软件后,在主窗体上显示新生成的控件。本发明专利技术无需对第三方软件重新开发或反编译的情况下,就可有效、方便、快速完成语言切换。快速完成语言切换。快速完成语言切换。

【技术实现步骤摘要】
一种基于Windows平台的第三方软件语言切换方法及处理终端


[0001]本专利技术涉及软件语言切换开发
,具体是一种基于Windows平台的第三方软件语言切换方法及处理终端。

技术介绍

[0002]随着全球化和互联网技术的高速发展,越来越多的需要拓展国外业务,国外的企业也越来越需要到我国来发展业务。随着国际化的业务需要,对于软件需要进行语言切换,以提高目标国家用户的使用体验度。但在某些情况下,例如原先开发软件的程序员离职或者包括源代码在内的软件开发资料丢失等原因,使得已开发完成的软件仅支持一个或少量几个语言,并不满足目标国家的目标语言。例如,我国某企业原本开发的软件仅支持中文,后来因业务拓展到国外,需要该软件支持英文或其他语言(例如德文),但现有软件又不支持。在这种情况下,现有的应对办法主要又两种:第一种,对该软件重新编写源代码,也即进行重开发,以支持目标语言,可以从中文切换到英文或德文。第二种,对软件进行反编译,以得到该软件的源代码,但反编译只能得到近似的源代码,并不能得到完整的源代码,并且很多程序进行了反编译保护,第三方很难找到修改显示内容的位置。对于第一种方法,重新开发,费时费力,成本高,对程序功能逻辑理解有偏差,开发不到位,程序相对稳定性低。而对于反编译,经常出现无法反编译或者反编译效果不好。因此,希望一种无需重开发和反编译即可很好实现对第三方软件进行语言切换的方法以在无需重写软件的源代码情况下可实现以所希望的目标语言来显示软件。

技术实现思路

[0003]针对现有技术的不足,本专利技术的目的是提供一种基于Windows平台的第三方软件语言切换方法及处理终端,其能够解决
技术介绍
所描述的问题。
[0004]实现本专利技术的目的的技术方案为:一种基于Windows平台的第三方软件语言切换方法,包括如下步骤:
[0005]步骤1:接收启动第三方软件的指令后,弹出预先开发的语言切换窗体,接收用户在语言切换窗体选择将第三方软件语言切换至目标语言的指令;
[0006]步骤2:调用第三方软件所在的进程,根据进程的MainWindowHandle属性获取第三方软件的主窗体句柄;
[0007]步骤3:根据第三方软件的主窗体句柄,枚举出主窗体中的所有控件,并通过控件的控件句柄获取控件显示标题,以及获得控件的位置信息,位置信息包括控件的宽高以及控件在主窗体的位置坐标,从而得到主窗体上的每一个控件、控件的标题和控件大小;
[0008]步骤4:根据获得主窗体的所有控件和各个控件的显示内容,为每一个控件生成对应的一个语言为目标语言的控件,在成功启动第三方软件后,在主窗体上显示新生成的控件,从而完成在第三方软件上切换目标语言。
[0009]进一步地,在步骤1中,用户通过点击操作方式对第三方软件进行操作即是发出启动第三方软件的指令。
[0010]进一步地,在步骤1中,在第三方软件成功启动前,先行弹出语言切换窗体,等待用户需要选取切换的目标语言。
[0011]进一步地,语言切换窗体的窗体风格与第三方软件相同或相似,窗体风格包括颜色、字体、窗体大小。
[0012]进一步地,在步骤2中,若用户选择切换的目标语言与第三方软件的语言相同,则直接调用第三方软件所在的进程,以启动第三方软件,成功启动第三方软件后,结束处理。
[0013]进一步地,在步骤3中,还包括,启动spy++工具,通过spy++工具查找出所获得控件的第二位置信息,第二位置信息包括控件的宽高和控件在主窗体的位置坐标,并将第二位置信息和第一位置信息进行比对,从而可以通过参考第二位置信息,对第一位置信息进行修正,以进一步确定控件的位置信息,得到更精准的控件位置信息,第一位置信息为通过调用Windows平台的API接口GetWindowRect所获得控件的位置信息。
[0014]进一步地,在步骤3中,还包括,通过spy++工具查找出控件ID和获得控件Z序,通过控件ID调用Windows平台的API接口GetDlgItem,通过API接口GetDlgItem来获得控件句柄,通过控件Z序调用Windows平台下的API接口GetWindow,以及常量GW_HWNDNEXT、GW_HWNDFIRST,从而获得当前控件的前一个或下一个控件的句柄,从而可以通过依次将所获得的控件作为当前控件,不断得到前一个或下一个控件的句柄,从而得到所有控件。
[0015]进一步地,调用Windows的API接口FindWindowEx获得控件标题和控件类型,从而通过控件标题以及控件类型来获得控件句柄。
[0016]进一步地,所属根据获得主窗体的所有控件和各个控件的显示内容,为每一个控件生成对应的一个语言为目标语言的控件,其具体实现过程,包括以下步骤:
[0017]根据获得的控件句柄,调用Windows平台的API接口GetWindowTextLength和GetWindowText获取到的控件显示内容,调用Windows平台的API接口SendMessage以及常量WM_SETTEXT设置该控件的显示内容为用户所选语言格式的显示内容,从而获得每一个控件的显示内容,并基于控件的显示内容生成目标语言的控件显示内容,从而为第三方软件的每一个控件的显示内容生成一个语言为目标语言的新控件,
[0018]调用Windows平台的API接口MoveWindow,根据各个控件的显示内容大小,相应地调整新控件的大小以及坐标,
[0019]调用window平台的API接口SendMessage以及常量SetTextFont来调整新控件显示内容的字体大小,
[0020]调用Windows平台的API接口UpdateWidnow来更新相应的控件,
[0021]调用Windows平台的API接口SetWinEventHook以及常量WM_SHOWWINDOW来监听主窗体中由隐藏状态变为显示状态的控件,并获取该控件的句柄,并更新该控件的显示内容为目标语言的显示内容,
[0022]调用Windows平台的API接口SetWinEventHook以及常量WM_CREATE来监听第三方软件除主窗体外弹出的窗体,并获取该窗体的句柄,更新窗体及控件的显示内容为目标语言的显示内容。
[0023]一种处理终端,其包括:
[0024]存储器,用于存储程序指令;
[0025]处理器,用于运行所述程序指令,以执行所述基于Windows平台的第三方软件语言切换方法的步骤。
[0026]本专利技术的有益效果为:本专利技术可以不用对第三方软件重新开发或反编译的情况下,就可以有效、方便、快速地解决对Windows平台下的第三方软件实现多语言切换功能问题,从而为企业或用户大大节省成本、时间,提高工作效率,拓展第三方软件的使用用户群体,增加企业或用户的效益。
附图说明
[0027]图1为本专利技术的流程示意图;
[0028]图2为第三方软件原先的主窗体以及主窗体上的控件语言切换前后的对比示意图;
...

【技术保护点】

【技术特征摘要】
1.一种基于Windows平台的第三方软件语言切换方法,其特征在于,包括如下步骤:步骤1:接收启动第三方软件的指令后,弹出预先开发的语言切换窗体,接收用户在语言切换窗体选择将第三方软件语言切换至目标语言的指令;步骤2:调用第三方软件所在的进程,根据进程的MainWindowHandle属性获取第三方软件的主窗体句柄;步骤3:根据第三方软件的主窗体句柄,枚举出主窗体中的所有控件,并通过控件的控件句柄获取控件显示标题,以及获得控件的位置信息,位置信息包括控件的宽高以及控件在主窗体的位置坐标,从而得到主窗体上的每一个控件、控件的标题和控件大小;步骤4:根据获得主窗体的所有控件和各个控件的显示内容,为每一个控件生成对应的一个语言为目标语言的控件,在成功启动第三方软件后,在主窗体上显示新生成的控件,从而完成在第三方软件上切换目标语言。2.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,在步骤1中,用户通过点击操作方式对第三方软件进行操作即是发出启动第三方软件的指令。3.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,在步骤1中,在第三方软件成功启动前,先行弹出语言切换窗体,等待用户需要选取切换的目标语言。4.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,语言切换窗体的窗体风格与第三方软件相同或相似,窗体风格包括颜色、字体、窗体大小。5.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,在步骤2中,若用户选择切换的目标语言与第三方软件的语言相同,则直接调用第三方软件所在的进程,以启动第三方软件,成功启动第三方软件后,结束处理。6.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,在步骤3中,还包括,启动spy++工具,通过spy++工具查找出所获得控件的第二位置信息,第二位置信息包括控件的宽高和控件在主窗体的位置坐标,并将第二位置信息和第一位置信息进行比对,从而可以通过参考第二位置信息,对第一位置信息进行修正,以进一步确定控件的位置信息,得到更精准的控件位置信息,第一位置信息为通过调用Windows平台的API接口GetWindowRect所获得控件的位置信息。7.根据权利要求1所述的基于Windows平台的第三方软件语言切换方法,其特征在于,在步骤3中,还包括,通过spy++工具查找出控件ID和获得控件Z序,通过控件ID调用Windo...

【专利技术属性】
技术研发人员:蒋长安朱正辉明德蔡文生
申请(专利权)人:广东保伦电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1