有时候,我们想获取系统的版本号,根据版本号为软件做特定的设置。
通常情况下我们会调用系统API函数GetVersionEx来获取系统版本号,但是,如果软件是以兼容模式运行的话,将会发生window版本欺诈的问题,这个GetVersionEx不能正确获取系统版本,只能获取兼容模式下的系统版本,那么该如何解决呢?
通常情况下我们会调用系统API函数GetVersionEx来获取系统版本号,但是,如果软件是以兼容模式运行的话,将会发生window版本欺诈的问题,这个GetVersionEx不能正确获取系统版本,只能获取兼容模式下的系统版本,那么该如何解决呢?
在系统目录C:\Windows\System32下有个程序ntoskrnl.exe,该程序的版本与系统版本一致,我们可以获取该程序的版本号,以此在我们的软件中获取系统的正确版本号,下面是Delphi的实现代码
type PVerInfo = ^TVS_FIXEDFILEINFO; TVS_FIXEDFILEINFO = record dwSignature: longint; dwStrucVersion: longint; dwFileVersionMS: longint