Version plug-in: Difference between revisions
m (Reverted edits by 80.229.203.210 to last version by TeeWeTee) |
|||
Line 26: | Line 26: | ||
**IsWindows2000 | **IsWindows2000 | ||
**IsWindowsXP | **IsWindowsXP | ||
** | **IsWindows2003 | ||
**IsWindowsXPx64 | **IsWindowsXPx64 | ||
**IsWindowsVista | **IsWindowsVista |
Revision as of 15:32, 7 May 2013
Author: TeeWeTee (talk, contrib) |
Links
Version 0.3 (20. feb 2013)
NSIS_version_plugin_03.zip (69 KB) [Adapted version by TeeWeTee]
Version 0.2 (25 sep 2004) [Version by denis_gorbunov]
NSIS_version_plugin_02.zip (35 KB)
Release builds with VS2010 Premium (only older 0.2 release)
ANSI: http://db.tt/cbyN0KJh Unicode: http://db.tt/OfllzHW7
Virus scanner false alarm
Currently some malware scanners (TrendMicro) falsely detect the Version.dll as malware. The companies are informed thus this should go away soon. This isn't the first time where this happened to NSIS.
Description
With this plugin you are able to determine which version of windows you are running. Technically it is using the GetVersionEx() method from the "kernel32.dll".
Features:
- check for a specific windows version:
- IsWindows95
- IsWindows98
- IsWindowsME
- IsWindowsNT351
- IsWindowsNT40
- IsWindows2000
- IsWindowsXP
- IsWindows2003
- IsWindowsXPx64
- IsWindowsVista
- IsWindowsServer2008
- IsWindows7
- IsWindowsServer2008R2
- IsWindows8
- IsWindowsServer2012
- Call 'GetWindowsVersion' to get all relevant windows versioning infos:
- major version
- minor version
- build number
- platform id
- service pack name
- product type
- Call platform methods to detect the windows platform type:
- IsWindowsPlatformNT
- IsWindowsPlatform9x
Usage Example
Name VersionExample # Included files !include Sections.nsh !include "LogicLib.nsh" OutFile "Example_Version_NSIS_plugin.exe" #Declare variables var isWindowsXP var MajorVersion var MinorVersion var BuildNumber var PlatformID var CSDVersion var ProductType Section -Nope #Nothing to do here SectionEnd Function .onInit #detect Windows XP Version::IsWindowsXP #obtain value Pop $isWindowsXP ${if} $isWindowsXP == "1" MessageBox MB_OK "Its Windows XP!" ${Else} MessageBox MB_OK "Its not Windows XP!" ${EndIf} #call plugin dll function Version::GetWindowsVersion Pop $MajorVersion Pop $MinorVersion Pop $BuildNumber Pop $PlatformID Pop $CSDVersion Pop $ProductType ${if} $ProductType == "1" MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion, Workstation" ${ElseIf} $ProductType == "2" MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion, DomainController" ${ElseIf} $ProductType == "3" MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion, Server" ${Else} MessageBox MB_OK "$PlatformID-platform, version $MajorVersion.$MinorVersion, build $BuildNumber, $CSDVersion, Unknown ProductType" ${EndIf} Quit FunctionEnd
Version History
0.1 (03 sep 2004) (DNG)
- First public release
0.2 (25 sep 2004) (DNG)
- Implemented (proprietary) IntToStr-function since Delphi's SysUtils IntToStr requires more space (+ 24 kilobytes uncompressed)
0.3 (20 feb 2013) (TvT)
- Bugfix: proprietary IntToStr method (from 0.2) is buggy: Returns '6.' instead of '6.0' for Windows Vista (same for W2K 5.0 or NT4.0) Thus using the well testet SysUtils IntToStr method is prefered over some kb in size
- Added further methods for newer windows operating systems:
- IsWindowsXPx64
- IsWindowsVista
- IsWindowsServer2008
- IsWindows7
- IsWindowsServer2008R2
- IsWindows8
- IsWindowsServer2012
- The GetWindowsVersion() method returns the ProductType to be able to differentiate Server and Workstation windows versions
- Removed inexisting (e.g. isWindows31) and useless (e.g. IsWindows98orLater) methods
- Adapted the docs
Credits
Version 0.1 and 0.2 have been developed by Denis Gorbunov (http://gorbunov.ru/).
Version 0.3 was developed by TeeWeTee