Version plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Detect Windows Version moved to Version plug-in)
No edit summary
Line 72: Line 72:


   IsIsNotWindowsXP:
   IsIsNotWindowsXP:
   MessageBox MB_OK "This OS not is Windows XP"
   MessageBox MB_OK "This OS is not Windows XP"
   Goto Go2
   Goto Go2



Revision as of 10:42, 12 February 2009

Author: denis_gorbunov (talk, contrib)


Links

NSIS_version_plugin_02.zip (35 KB)
Zip.gif NSIS_version_plugin_02.zip (35 KB) (Mirror #1)

Description

Windows OS contain special API for OS version detecting. But standard NSIS 2 pack not use this.

My special plugin "Version.dll" use OS API (function GetVersionEx() from "kernel32.dll") for OS version detecting.

Plugin contain function:

  • GetWindowsVersion (get major, minor version, build number, platform id, service pack name);
  • simply OS detect function (IsWindows31, IsWindows95, IsWindows98, IsWindowsME, IsWindowsNT351, IsWindowsNT40, IsWindows2000, IsWindowsXP, IsWindows2003);
  • simply OS platform detect function (IsWindowsPlatformNT, IsWindowsPlatform9x);
  • simply "good" OS detect function (IsWindows98orLater);

Size of plugin "version.dll" is 6144 bytes

Usage Example

; if "version.dll" copied in NSIS plugin sub-directory
; this line is not necessary
 
!addplugindir "plugins"
 
 
; it is not example
; it is for this empty intallation only
 
OutFile "example_Version_NSIS_plugin.exe"
 
 
Section Dummy
; it is not example
; it is for this empty intallation only
SectionEnd
 
 
; variables declaration
 
var TempResult
var MajorVersion
var MinorVersion
var BuildNumber
var PlatformID
var CSDVersion
 
 
Function .onInit
 
  ; detect Windows XP
  ; it is simply
 
  ; call plugin dll function 
 
  Version::IsWindowsXP
 
  ; get result
 
  Pop $TempResult
 
  ; check result
 
  StrCmp $TempResult "1" ItIsWindowsXP IsIsNotWindowsXP
 
  ItIsWindowsXP:
  MessageBox MB_OK "This OS is Windows XP"
  Goto Go2
 
  IsIsNotWindowsXP:
  MessageBox MB_OK "This OS is not Windows XP"
  Goto Go2
 
 
  ; get Windows OS version info
 
  Go2:
 
  ; call plugin dll function 
 
  Version::GetWindowsVersion

  ; get result
 
  Pop $MajorVersion
  Pop $MinorVersion
  Pop $BuildNumber
  Pop $PlatformID
  Pop $CSDVersion
 
  ; show result
  MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion"
 
FunctionEnd