CN108628633A - 版本号获取方法、装置及电子设备 - Google Patents

版本号获取方法、装置及电子设备 Download PDF

Info

Publication number
CN108628633A
CN108628633A CN201810291144.5A CN201810291144A CN108628633A CN 108628633 A CN108628633 A CN 108628633A CN 201810291144 A CN201810291144 A CN 201810291144A CN 108628633 A CN108628633 A CN 108628633A
Authority
CN
China
Prior art keywords
version number
information
version
kernel32
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810291144.5A
Other languages
English (en)
Inventor
黄浩
张文明
陈少杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201810291144.5A priority Critical patent/CN108628633A/zh
Publication of CN108628633A publication Critical patent/CN108628633A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种版本号获取方法、装置及电子设备,该方法包括:获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。如此,通过以上步骤可快速、准确、有效地获得客户端运行在兼容系统下的版本号,避免了现有技术中当客户端运行在兼容系统下时难以获取到准确的版本号的缺陷。

Description

版本号获取方法、装置及电子设备
技术领域
本申请涉及Windows系统技术领域,具体而言,涉及一种版本号获取方法、装置及电子设备。
背景技术
在Windows系统中,为了保证旧版本的软件能够在新系统下运行,引入了兼容系统模式。兼容系统模式可兼容比客户端自身系统版本更低的版本正常运行程序。但同时也带来了困扰,经发明人研究发现,当客户端运行在兼容系统模式下,在现有技术中难以获取到客户端在该兼容系统模式下的准确的系统版本号,故而在客户端的某些功能开发出现异常时,因无法获取准确的系统版本号而导致难以准确判定异常原因。
发明内容
有鉴于此,本申请的目的在于,提供一种版本号获取方法、装置及电子设备以改善上述问题。
本申请实施例提供一种版本号获取方法,所述方法包括:
获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
进一步地,所述从该kernel32.dll文件中提取出文件版本信息的步骤之前,所述方法还包括:
调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小;
获得具有与所述缓冲区大小相对应的内存大小的内存空间。
进一步地,所述从该kernel32.dll文件中提取出文件版本信息的步骤之后,所述方法还包括:
将获得的文件版本信息存储至所述内存空间中。
进一步地,所述从该kernel32.dll文件中提取出文件版本信息的步骤,包括:
调用GetFileVersionInfo函数以从所述kernel32.dll文件中获取文件版本信息。
进一步地,所述提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号的步骤,包括:
找到VS_FIXEDFILEINFO结构体中的dwFileVersionMS字段;
获取dwFileVersionMS字段中保存的一个二进制的32位的整数,其中,该整数的高16位为主版本号,低16位为次版本号;
将所述主版本号和所述次版本号组合为系统版本号。
进一步地,所述根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息的步骤,包括:
调用VerQueryValue函数从所述文件版本信息中获取到VS_FIXEDFILEINFO结构体信息。
本申请实施例还提供一种版本号获取装置,所述装置包括:
文件版本信息获取模块,用于获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
结构体信息获取模块,用于根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取模块,用于提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
版本号获取模块,用于基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
进一步地,所述装置还包括:
缓冲区大小获取模块,用于调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小;
内存空间获取模块,用于获得具有与所述缓冲区大小相对应的内存大小的内存空间。
本申请实施例还提供一种电子设备,包括:存储器;
处理器;及
版本号获取装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块,所述版本号获取装置包括:
文件版本信息获取模块,用于获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
结构体信息获取模块,用于根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取模块,用于提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
版本号获取模块,用于基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当所述指令被执行时,实现上述的版本号获取方法。
本申请实施例提供的版本号获取方法、装置及电子设备,通过获取客户端的windows系统中的kernel32.dll文件,以从该kernel32.dll文件中提取出文件版本信息。并获得该文件版本信息中的VS_FIXEDFILEINFO结构体信息。提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号。再基于windows系统的版本号设置规则并根据获得的系统版本号以获得客户端运行在windows兼容系统下的版本号。如此,通过以上步骤可快速、准确、有效地获得客户端运行在兼容系统下的版本号,避免了现有技术中当客户端运行在兼容系统下时难以获取到准确的版本号的缺陷。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
图1为本申请实施例提供的电子设备的结构框图。
图2为本申请实施例提供的版本号获取方法的流程图。
图3为本申请实施例提供的版本号获取方法的另一流程图。
图4为图2中步骤S130的子步骤的流程图。
图5为本申请实施例提供的版本号获取装置的功能模块框图。
图6为本申请实施例提供的版本号获取装置的另一功能模块框图。
图7为本申请实施例提供的提取模块的功能模块框图。
图标:100-电子设备;110-版本号获取装置;111-文件版本信息获取模块;112-结构体信息获取模块;113-提取模块;1131-字段查找单元;1132-数值获取单元;1133-系统版本号获取单元;114-版本号获取模块;115-缓冲区大小获取模块;116-内存空间获取模块;117-存储模块;120-处理器;130-存储器。
具体实施方式
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在Windows系统中,为了保证旧版本的软件能够在新系统下运行,引入了兼容系统模式。在兼容系统模式下可以选择以兼容Windows系统之前的版本的模式运行程序。虽然这种模式可以保证旧版本软件可在新系统上运行,但是在进行客户端开发过程中,兼容系统模式可能会导致开发出现问题。例如,在客户端开发过程中,用户本身电脑系统是Windows10,但由于用户设置了客户端运行在Windows XP的兼容系统下,因此该客户端实际是运行在Windows XP系统环境下。若该客户端只能支持在Windows 7以上的系统中才能正常运行某些特定功能。因此,在进行客户端的开发过程中,需要能够准确获得客户端运行在兼容系统下的版本,才能解决某些特定功能开发失败的问题。
但是在现有技术中,往往只能获得用户客户端本身的系统版本,难以准确获得客户端运行在兼容系统下的版本。例如若用户客户端的系统是Windows 10,但设置了客户端运行在Windows XP兼容系统下,常用方法获取到的系统版本将是Windows 10,而难以获取到准确的Windows XP。
基于上述问题,在windows系统每次更新时,会对系统下的kernel32.dll文件进行更新,而kernel32.dll文件带有一个文件版本信息,当中记录有当前系统的版本号信息。通过分析kernel32.dll文件可获得客户端在运行在兼容系统下的系统版本。
如图1所示,本申请实施例基于上述研究发现提供了一种电子设备100,所述电子设备100包括存储器130、处理器120和版本号获取装置110。
所述存储器130和处理器120之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述版本号获取装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器130中的软件功能模块。所述处理器120用于执行所述存储器130中存储的可执行的计算机程序,例如,所述版本号获取装置110所包括的软件功能模块及计算机程序等,以实现版本号获取方法。
其中,所述存储器130可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器130用于存储程序,所述处理器120在接收到执行指令后,执行所述程序。
所述处理器120可能是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
可选地,所述电子设备100的具体类型不受限制,例如,可以是,但不限于,智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personal digitalassistant,PDA)、移动上网设备(mobile Internet device,MID)、web(网站)服务器、数据服务器、电脑、移动上网设备(mobile Internet device,MID)等具有处理功能的设备。
结合图2,本发明实施例还提供一种可应用于上述电子设备100的版本号获取方法。其中,所述方法有关的流程所定义的方法步骤可以由所述处理器120实现。下面将对图2所示的具体流程进行详细阐述。
步骤S110,获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息。
kernel32.dll文件是windows内核级别的DLL文件,可为windows系统运行提供支持,例如控制系统的内存管理、数据的输入输出操作和中断处理等。Windows系统每次更新时,可对kernel32.dll文件中的信息进行更新。而kernel32.dll文件中包含有文件版本信息,该文件版本信息中记录有当前系统的版本号信息。因此,可通过获取kernel32.dll文件中的文件版本信息以获取当前windows系统的版本号。
结合参阅图3,在本实施例中,在从kernel32.dll文件中提取文件版本信息之前,所述版本号获取方法还包括以下步骤:
步骤S210,调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小。
步骤S220,获得具有与所述缓冲区大小相对应的内存大小的内存空间。
GetFileVersionInfoSize函数可用于判断容纳文件版本信息所需的缓冲区的大小。本实施例中调用GetFileVersionInfoSize函数,其返回值可包括容纳文件的版本资源所需的缓冲区长度。当然,若文件中不包含版本信息,则返回值为0,并生成错误信息GetLastError。
在获得kernel32.dll文件中的版本信息所需的缓冲区大小后,向内存申请以获取一个具有和所述缓冲区大小相等的内存大小的内存空间,以用于后续存放文件版本信息。
本实施例中,调用GetFileVersionInfo函数以从上述的kernel32.dll文件中获取其中的文件版本信息。并将获取的文件版本信息存放至上述所获得的内存空间中。GetFileVersionInfo函数是一个可从支持版本标记的模块里获取文件版本信息的函数,其返回值为非零则表示获取成功,返回值为零时表示获取失败,可生成获取错误信息。
步骤S120,根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息。
步骤S130,提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号。
本实施例中,通过以上步骤将获得的kernel32.dll文件中的文件版本信息保存至内存空间中后,可调用VerQueryValue函数,该函数可用于从版本资源中获取信息。本实施例中,文件版本信息中包括一个VS_FIXEDFILEINFO结构体信息。其中,该VS_FIXEDFILEINFO结构体信息中包含系统的详细版本号。本实施例可通过对VS_FIXEDFILEINFO结构体信息进行分析以获得记录在其中的系统版本号。可选地,本实施例调用VerQueryValue函数从文件版本信息中获得其中的VS_FIXEDFILEINFO结构体信息。当函数的返回值为非零时,表明信息获取成功,若请求的信息不存在,或者其中的版本信息不属于有效版本信息,则返回值为零。
请参阅图4,在本实施例中,步骤S130可以包括步骤S131、步骤S132以及步骤S133三个子步骤。
步骤S131,找到VS_FIXEDFILEINFO结构体中的dwFileVersionMS字段。
步骤S132,获取dwFileVersionMS字段中保存的一个二进制的32位的整数,其中,该整数的高16位为主版本号,低16位为次版本号。
步骤S133,将所述主版本号和所述次版本号组合为系统版本号。
VS_FIXEDFILEINFO结构体中有一个dwFileVersionMS字段,该字段可用于保存系统的二进制形式的版本号。该版本号以32位的整数值形式保存,其中,该整数值的高16位为主版本号,低16位为次版本号,例如数值10.2,其中10为文件的主版本号,2为文件的次版本号。而主版本号和次版本号即构成了系统版本号。并且,由于VS_FIXEDFILEINFO结构体中的文件版本信息不受客户端的文件清单的影响,因此可以通过VS_FIXEDFILEINFO结构体获取到兼容系统模式下的系统版本号。
步骤S140,基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
Windows系统进行系统更新所发布的版本号遵循版本号设置规则,例如10.0表示的是windows 10,6.1表示的是windows 7。根据这样的版本号设置规则以及上述获得的主版本号和次版本号即可得到客户端运行在windows兼容系统下的版本号。
请参阅图5,本申请实施例还提供一种应用于上述电子设备100的版本号获取装置110,该版本号获取装置110包括文件版本信息获取模块111、结构体信息获取模块112、提取模块113以及版本号获取模块114。
所述文件版本信息获取模块111用于获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息。在本实施例中,所述文件版本信息获取模块111可用于执行图2所示的步骤S110,关于所述文件版本信息获取模块111的具体描述可以参照前文对步骤S110的描述。
所述结构体信息获取模块112用于根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息。在本实施例中,所述结构体信息获取模块112可用于执行图2所示的步骤S120,关于所述结构体信息获取模块112的具体描述可以参照前文对步骤S120的描述。
所述提取模块113用于提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号。在本实施例中,所述提取模块113可用于执行图2所示的步骤S130,关于所述提取模块113的具体描述可以参照前文对步骤S130的描述。
所述版本号获取模块114用于基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。在本实施例中,所述版本号获取模块114可用于执行图2所示的步骤S140,关于所述版本号获取模块114的具体描述可以参照前文对步骤S140的描述。
进一步地,在本实施例中,请参阅图6,所述版本号获取装置110还包括缓冲区大小获取模块115以及内存空间获取模块116。
所述缓冲区大小获取模块115用于调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小。在本实施例中,所述缓冲区大小获取模块115可用于执行图3所示的步骤S210,关于所述缓冲区大小获取模块115的具体描述可以参照前文对步骤S210的描述。
所述内存空间获取模块116用于获得具有与所述缓冲区大小相对应的内存大小的内存空间。在本实施例中,所述内存空间获取模块116可用于执行图3所示的步骤S220,关于所述内存空间获取模块116的具体描述可以参照前文对步骤S220的描述。
本实施例中,所述版本号获取装置110还包括存储模块117,所述存储模块117用于将获得的文件版本信息存储至所述内存空间中。
进一步地,在本实施例中,请结合参阅图7,所述提取模块113包括字段查找单元1131、数值获取单元1132以及系统版本号获取单元1133。
所述字段查找单元1131用于找到VS_FIXEDFILEINFO结构体中的dwFileVersionMS字段。在本实施例中,所述字段查找单元1131可用于执行图4所示的步骤S131,关于所述字段查找单元1131的具体描述可以参照前文对步骤S131的描述。
所述数值获取单元1132用于获取dwFileVersionMS字段中保存的一个二进制的32位的整数,其中,该整数的高16位为主版本号,低16位为次版本号。在本实施例中,所述数值获取单元1132可用于执行图4所示的步骤S132,关于所述数值获取单元1132的具体描述可以参照前文对步骤S132的描述。
所述系统版本号获取单元1133用于将所述主版本号和所述次版本号组合为系统版本号。在本实施例中,所述系统版本号获取单元1133可用于执行图4所示的步骤S133,关于所述系统版本号获取单元1133的具体描述可以参照前文对步骤S133的描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本申请各个实施场景所述的方法。
综上所述,本申请实施例提供一种版本号获取方法、装置及电子设备100,通过获取客户端的windows系统中的kernel32.dll文件,以从该kernel32.dll文件中提取出文件版本信息。并获得该文件版本信息中的VS_FIXEDFILEINFO结构体信息。提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号。再基于windows系统的版本号设置规则并根据获得的系统版本号以获得客户端运行在windows兼容系统下的版本号。如此,通过以上步骤可快速、准确、有效地获得客户端运行在兼容系统下的版本号,避免了现有技术中当客户端运行在兼容系统下时难以获取到准确的版本号的缺陷。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种版本号获取方法,其特征在于,所述方法包括:
获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
2.根据权利要求1所述的版本号获取方法,其特征在于,所述从该kernel32.dll文件中提取出文件版本信息的步骤之前,所述方法还包括:
调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小;
获得具有与所述缓冲区大小相对应的内存大小的内存空间。
3.根据权利要求2所述的版本号获取方法,其特征在于,所述从该kernel32.dll文件中提取出文件版本信息的步骤之后,所述方法还包括:
将获得的文件版本信息存储至所述内存空间中。
4.根据权利要求1所述的版本号获取方法,其特征在于,所述从该kernel32.dll文件中提取出文件版本信息的步骤,包括:
调用GetFileVersionInfo函数以从所述kernel32.dll文件中获取文件版本信息。
5.根据权利要求1所述的版本号获取方法,其特征在于,所述提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号的步骤,包括:
找到VS_FIXEDFILEINFO结构体中的dwFileVersionMS字段;
获取dwFileVersionMS字段中保存的一个二进制的32位的整数,其中,该整数的高16位为主版本号,低16位为次版本号;
将所述主版本号和所述次版本号组合为系统版本号。
6.根据权利要求1所述的版本号获取方法,其特征在于,所述根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息的步骤,包括:
调用VerQueryValue函数从所述文件版本信息中获取到VS_FIXEDFILEINFO结构体信息。
7.一种版本号获取装置,其特征在于,所述装置包括:
文件版本信息获取模块,用于获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
结构体信息获取模块,用于根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取模块,用于提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
版本号获取模块,用于基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
8.根据权利要求7所述的版本号获取装置,其特征在于,所述装置还包括:
缓冲区大小获取模块,用于调用GetFileVersionInfoSize函数以获取所述kernel32.dll文件中的文件版本信息所需的缓冲区大小;
内存空间获取模块,用于获得具有与所述缓冲区大小相对应的内存大小的内存空间。
9.一种电子设备,其特征在于,包括:
存储器;
处理器;及
版本号获取装置,包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块,所述版本号获取装置包括:
文件版本信息获取模块,用于获取客户端的windows系统中的kernel32.dll文件,从该kernel32.dll文件中提取出文件版本信息;
结构体信息获取模块,用于根据所述文件版本信息获得VS_FIXEDFILEINFO结构体信息;
提取模块,用于提取出VS_FIXEDFILEINFO结构体信息中记录的系统版本号;
版本号获取模块,用于基于windows系统的版本号设置规则并根据所述系统版本号以获得所述客户端运行在windows兼容系统下的版本号。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,实现权利要求1-6任意一项所述的版本号获取方法。
CN201810291144.5A 2018-04-03 2018-04-03 版本号获取方法、装置及电子设备 Pending CN108628633A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810291144.5A CN108628633A (zh) 2018-04-03 2018-04-03 版本号获取方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810291144.5A CN108628633A (zh) 2018-04-03 2018-04-03 版本号获取方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN108628633A true CN108628633A (zh) 2018-10-09

Family

ID=63704669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810291144.5A Pending CN108628633A (zh) 2018-04-03 2018-04-03 版本号获取方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108628633A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150154277A1 (en) * 2013-12-02 2015-06-04 Citrix Systems, Inc. Methods and Systems for Machine Learning to Discover Application Compatibility Status
CN105512550A (zh) * 2015-01-21 2016-04-20 卡巴斯基实验室股份公司 用于活跃的操作系统内核保护的系统和方法
CN106126248A (zh) * 2016-06-29 2016-11-16 北京金山安全软件有限公司 一种获取操作系统版本信息的方法、装置及电子设备
CN106201504A (zh) * 2016-07-06 2016-12-07 北京金山安全软件有限公司 一种操作系统版本识别方法以及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150154277A1 (en) * 2013-12-02 2015-06-04 Citrix Systems, Inc. Methods and Systems for Machine Learning to Discover Application Compatibility Status
CN105512550A (zh) * 2015-01-21 2016-04-20 卡巴斯基实验室股份公司 用于活跃的操作系统内核保护的系统和方法
CN106126248A (zh) * 2016-06-29 2016-11-16 北京金山安全软件有限公司 一种获取操作系统版本信息的方法、装置及电子设备
CN106201504A (zh) * 2016-07-06 2016-12-07 北京金山安全软件有限公司 一种操作系统版本识别方法以及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
XENOPHŌN: "也谈如何获取真实正确的Windows系统版本号", 《HTTPS://WWW.CNBLOGS.COM/XENOPHON/P/6093780.HTML》 *

Similar Documents

Publication Publication Date Title
CN107992741A (zh) 一种模型训练方法、检测url的方法及装置
US20180364999A1 (en) Method and Device for Identifying File
CN110162344B (zh) 一种隔离限流的方法、装置、计算机设备及可读存储介质
RU2605041C2 (ru) Способы и системы для отображения тем микроблогов
CN111831920A (zh) 用户需求分析方法、装置、计算机设备及存储介质
CN108459913A (zh) 数据并行处理方法、装置及服务器
CN114066475A (zh) 基于云支付的信息安全防护方法及服务器
CN112148387A (zh) 预加载反馈信息的方法、装置、计算机设备及存储介质
CN113536174A (zh) 一种界面加载方法、装置及设备
CN110069217B (zh) 一种数据存储方法及装置
CN103838575A (zh) 一种基于extjs框架的插件式页面定制实现方法
CN108628633A (zh) 版本号获取方法、装置及电子设备
CN111046377A (zh) 加载动态链接库的方法、装置、电子设备及存储介质
CN113688240B (zh) 威胁要素提取方法、装置、设备及存储介质
CN113132241B (zh) Acl模板动态配置方法及装置
CN111079390B (zh) 一种复选框列表的选择状态确定方法以及装置
CN111752600B (zh) 代码异常检测方法、装置、计算机设备及存储介质
CN112583761B (zh) 安全实体的管理方法、装置、计算机设备和存储介质
CN109840080B (zh) 字符属性比较方法、装置、存储介质及电子设备
CN112115175A (zh) 云服务产品处理方法和装置、电子设备及存储介质
CN109033189B (zh) 链路结构日志的压缩方法、装置、服务器及可读存储介质
CN107729180B (zh) 异常信息处理方法及装置、计算机装置及可读存储介质
CN108509478B (zh) 规则引擎文件的拆分调用方法、电子装置及存储介质
CN108491190A (zh) 类继承结构信息获取方法、装置及电子设备
CN103761247A (zh) 一种出错文件的处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20181009