mirror of
				https://github.com/notepad-plus-plus/notepad-plus-plus.git
				synced 2025-11-04 05:23:56 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			161 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			NSIS
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			NSIS
		
	
	
	
	
	
; this file is part of installer for Notepad++
 | 
						|
; Copyright (C)2016 Don HO <don.h@free.fr>
 | 
						|
;
 | 
						|
; This program is free software; you can redistribute it and/or
 | 
						|
; modify it under the terms of the GNU General Public License
 | 
						|
; as published by the Free Software Foundation; either
 | 
						|
; version 2 of the License, or (at your option) any later version.
 | 
						|
;
 | 
						|
; Note that the GPL places important restrictions on "derived works", yet
 | 
						|
; it does not provide a detailed definition of that term.  To avoid      
 | 
						|
; misunderstandings, we consider an application to constitute a          
 | 
						|
; "derivative work" for the purpose of this license if it does any of the
 | 
						|
; following:                                                             
 | 
						|
; 1. Integrates source code from Notepad++.
 | 
						|
; 2. Integrates/includes/aggregates Notepad++ into a proprietary executable
 | 
						|
;    installer, such as those produced by InstallShield.
 | 
						|
; 3. Links to a library or executes a program that does any of the above.
 | 
						|
;
 | 
						|
; This program is distributed in the hope that it will be useful,
 | 
						|
; but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
						|
; GNU General Public License for more details.
 | 
						|
; 
 | 
						|
; You should have received a copy of the GNU General Public License
 | 
						|
; along with this program; if not, write to the Free Software
 | 
						|
; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | 
						|
 | 
						|
 | 
						|
; http://nsis.sourceforge.net/Get_Windows_version
 | 
						|
 | 
						|
; GetWindowsVersion 4.1.1 (2015-06-22)
 | 
						|
;
 | 
						|
; Based on Yazno's function, http://yazno.tripod.com/powerpimpit/
 | 
						|
; Update by Joost Verburg
 | 
						|
; Update (Macro, Define, Windows 7 detection) - John T. Haller of PortableApps.com - 2008-01-07
 | 
						|
; Update (Windows 8 detection) - Marek Mizanin (Zanir) - 2013-02-07
 | 
						|
; Update (Windows 8.1 detection) - John T. Haller of PortableApps.com - 2014-04-04
 | 
						|
; Update (Windows 10 TP detection) - John T. Haller of PortableApps.com - 2014-10-01
 | 
						|
; Update (Windows 10 TP4 detection, and added include guards) - Kairu - 2015-06-22
 | 
						|
;
 | 
						|
; Usage: ${GetWindowsVersion} $R0
 | 
						|
;
 | 
						|
; $R0 contains: 95, 98, ME, NT x.x, 2000, XP, 2003, Vista, 7, 8, 8.1, 10.0 or '' (for unknown)
 | 
						|
 
 | 
						|
!ifndef __GET_WINDOWS_VERSION_NSH
 | 
						|
!define __GET_WINDOWS_VERSION_NSH
 | 
						|
 
 | 
						|
Function GetWindowsVersion
 | 
						|
 
 | 
						|
  Push $R0
 | 
						|
  Push $R1
 | 
						|
 
 | 
						|
  ClearErrors
 | 
						|
 
 | 
						|
  ; check if Windows NT family
 | 
						|
  ReadRegStr $R0 HKLM \
 | 
						|
  "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
 | 
						|
 
 | 
						|
  IfErrors 0 lbl_winnt
 | 
						|
 
 | 
						|
  ; we are not NT
 | 
						|
  ReadRegStr $R0 HKLM \
 | 
						|
  "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
 | 
						|
 
 | 
						|
  StrCpy $R1 $R0 1
 | 
						|
  StrCmp $R1 '4' 0 lbl_error
 | 
						|
 
 | 
						|
  StrCpy $R1 $R0 3
 | 
						|
 
 | 
						|
  StrCmp $R1 '4.0' lbl_win32_95
 | 
						|
  StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
 | 
						|
 
 | 
						|
  lbl_win32_95:
 | 
						|
    StrCpy $R0 '95'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_win32_98:
 | 
						|
    StrCpy $R0 '98'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_win32_ME:
 | 
						|
    StrCpy $R0 'ME'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt:
 | 
						|
 
 | 
						|
  StrCpy $R1 $R0 1
 | 
						|
 
 | 
						|
  StrCmp $R1 '3' lbl_winnt_x
 | 
						|
  StrCmp $R1 '4' lbl_winnt_x
 | 
						|
 
 | 
						|
  StrCpy $R1 $R0 3
 | 
						|
 
 | 
						|
  StrCmp $R1 '5.0' lbl_winnt_2000
 | 
						|
  StrCmp $R1 '5.1' lbl_winnt_XP
 | 
						|
  StrCmp $R1 '5.2' lbl_winnt_2003
 | 
						|
  StrCmp $R1 '6.0' lbl_winnt_vista
 | 
						|
  StrCmp $R1 '6.1' lbl_winnt_7
 | 
						|
  StrCmp $R1 '6.2' lbl_winnt_8
 | 
						|
  StrCmp $R1 '6.3' lbl_winnt_81
 | 
						|
  StrCmp $R1 '6.4' lbl_winnt_10 ; the early Windows 10 tech previews used version 6.4
 | 
						|
 
 | 
						|
  StrCpy $R1 $R0 4
 | 
						|
 
 | 
						|
  StrCmp $R1 '10.0' lbl_winnt_10
 | 
						|
  Goto lbl_error
 | 
						|
 
 | 
						|
  lbl_winnt_x:
 | 
						|
    StrCpy $R0 "NT $R0" 6
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_2000:
 | 
						|
    Strcpy $R0 '2000'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_XP:
 | 
						|
    Strcpy $R0 'XP'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_2003:
 | 
						|
    Strcpy $R0 '2003'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_vista:
 | 
						|
    Strcpy $R0 'Vista'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_7:
 | 
						|
    Strcpy $R0 '7'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_8:
 | 
						|
    Strcpy $R0 '8'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_81:
 | 
						|
    Strcpy $R0 '8.1'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_winnt_10:
 | 
						|
    Strcpy $R0 '10.0'
 | 
						|
  Goto lbl_done
 | 
						|
 
 | 
						|
  lbl_error:
 | 
						|
    Strcpy $R0 ''
 | 
						|
  lbl_done:
 | 
						|
 
 | 
						|
  Pop $R1
 | 
						|
  Exch $R0
 | 
						|
 
 | 
						|
FunctionEnd
 | 
						|
 
 | 
						|
!macro GetWindowsVersion OUTPUT_VALUE
 | 
						|
	Call GetWindowsVersion
 | 
						|
	Pop `${OUTPUT_VALUE}`
 | 
						|
!macroend
 | 
						|
 
 | 
						|
!define GetWindowsVersion '!insertmacro "GetWindowsVersion"'
 | 
						|
 
 | 
						|
!endif
 |