Allow2010 Posted February 4, 2015 Posted February 4, 2015 Hi all, i want to make sure that my script only runs on Windos Vist upto Windows 8.1 I want an errormessage when the script is started on newer or older Windows versions. According to a list on the net, all windows versions have version numbers like this: Windows Vista, Beta 1 6.0.5112 (20.07.2005) Windows Vista, Community Technology Preview (CTP) 6.0.5219 (30.08.2005) Windows Vista, TAP Preview 6.0.5259 (17.11.2005) Windows Vista, CTP (Dezember) 6.0.5270 (14.12.2005) Windows Vista, CTP (Februar) 6.0.5308 (17.02.2006) Windows Vista, CTP (Refresh) 6.0.5342 (21.03.2006) Windows Vista, April EWD 6.0.5365 (19.04.2006) Windows Vista, Beta 2 Previw 6.0.5381 (01.05.2006) Windows Vista, Beta 2 6.0.5384 (18.05.2006) Windows Vista, Pre-RC1 6.0.5456 (20.06.2006) Windows Vista, Pre-RC1, Build 5472 6.0.5472 (13.07.2006) Windows Vista, Pre-RC1, Build 5536 6.0.5536 (21.08.2006) Windows Vista, RC1 6.0.5600.16384 (29.08.2006) Windows Vista, Pre-RC2 6.0.5700 (10.08.2006) Windows Vista, Pre-RC2, Build 5728 6.0.5728 (17.09.2006) Windows Vista, RC2 6.0.5744.16384 (03.10.2006) Windows Vista, Pre-RTM, Build 5808 6.0.5808 (12.10.2006) Windows Vista, Pre-RTM, Build 5824 6.0.5824 (17.10.2006) Windows Vista, Pre-RTM, Build 5840 6.0.5840 (18.10.2006) Windows Vista, RTM (Release to Manufacturing) 6.0.6000.16386 (01.11.2006) Windows Vista 6.0.6000 (08.11.2006) Windows Vista, Service Pack 2 6.0.6002 (04.02.2008) Windows Server 2008 6.0.6001 (27.02.2008) Windows 7, RTM (Release to Manufacturing) 6.1.7600.16385 (22.10.2009) Windows 7 6.1.7601 Windows Server 2008 R2, RTM (Release to Manufacturing) 6.1.7600.16385 (22.10.2009) Windows Server 2008 R2, SP1 6.1.7601 Windows Home Server 2011 6.1.8400 (05.04.2011) Windows Server 2012 6.2.9200 (04.09.2012) Windows 8 6.2.9200 (26.10.2012) Windows Phone 8 6.2.10211 (29.10.2012) Windows Server 2012 R2 6.3.9200 (18.10.2013) Windows 8.1 6.3.9200 (18.10.2013) Windows 8.1, Update 1 6.3.9600 (08.04.2014) As @osversion ist no very acurate (Windows 10 has 6.4.xxxxx and @osversion still gives me Win81 until an update for autoit is released) i tought about checking the numbers directly. But @osbuild only gives me the last 4 digits of the version (like 9600). How can i acces the first two numbers (like 6.3)? Any ideas for a good and flexible solution? Thanks !
orbs Posted February 4, 2015 Posted February 4, 2015 (edited) it's in the registry: Func _OSVersion() Local $sHKLM = 'HKLM' Switch @OSArch Case 'X86' $sHKLM = 'HKLM' Case 'X64' $sHKLM = 'HKLM64' Case Else Return SetError(1, 0, 0) EndSwitch $sOSVersion = RegRead($sHKLM & '\Software\Microsoft\Windows NT\CurrentVersion', 'CurrentVersion') If @error Then Return SetError(1, 0, 0) Return Number($sOSVersion) EndFunc ;==>_OSVersion EDIT: apparently it does not require HKLM64, it works also like this: Func _OSVersion() $sOSVersion = RegRead('HKLM\Software\Microsoft\Windows NT\CurrentVersion', 'CurrentVersion') If @error Then Return SetError(1, 0, 0) Return Number($sOSVersion) EndFunc ;==>_OSVersion this can be applied to remote computers also. Edited February 4, 2015 by orbs Signature - my forum contributions: Spoiler UDF: LFN - support for long file names (over 260 characters) InputImpose - impose valid characters in an input control TimeConvert - convert UTC to/from local time and/or reformat the string representation AMF - accept multiple files from Windows Explorer context menu DateDuration - literal description of the difference between given dates Apps: Touch - set the "modified" timestamp of a file to current time Show For Files - tray menu to show/hide files extensions, hidden & system files, and selection checkboxes SPDiff - Single-Pane Text Diff
Allow2010 Posted February 4, 2015 Author Posted February 4, 2015 thanks....will try that out in my scripts...
Allow2010 Posted February 4, 2015 Author Posted February 4, 2015 tried it, works great, thanks again...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now