mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	Installer: Added statistics reporting
This commit is contained in:
		@@ -98,6 +98,9 @@ Var NonDefaultLanguage
 | 
				
			|||||||
Var AutoStartup
 | 
					Var AutoStartup
 | 
				
			||||||
Var Install64Bit
 | 
					Var Install64Bit
 | 
				
			||||||
Var InstallPortable
 | 
					Var InstallPortable
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
					Var SendStatistics
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
Var un.DeleteAll
 | 
					Var un.DeleteAll
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Install
 | 
					; Install
 | 
				
			||||||
@@ -215,6 +218,9 @@ Function .onInit
 | 
				
			|||||||
		StrCpy $NonDefaultLanguage $3
 | 
							StrCpy $NonDefaultLanguage $3
 | 
				
			||||||
		StrCpy $LANGUAGE $4
 | 
							StrCpy $LANGUAGE $4
 | 
				
			||||||
		StrCpy $INSTDIR $5
 | 
							StrCpy $INSTDIR $5
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
							StrCpy $SendStatistics $6
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
	${EndIf}
 | 
						${EndIf}
 | 
				
			||||||
FunctionEnd
 | 
					FunctionEnd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -224,6 +230,9 @@ Function ExchangeSettings
 | 
				
			|||||||
	StrCpy $3 $NonDefaultLanguage
 | 
						StrCpy $3 $NonDefaultLanguage
 | 
				
			||||||
	StrCpy $4 $LANGUAGE
 | 
						StrCpy $4 $LANGUAGE
 | 
				
			||||||
	StrCpy $5 $INSTDIR
 | 
						StrCpy $5 $INSTDIR
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
						StrCpy $6 $SendStatistics
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
	HideWindow
 | 
						HideWindow
 | 
				
			||||||
FunctionEnd
 | 
					FunctionEnd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -361,6 +370,15 @@ Function PageOptions
 | 
				
			|||||||
		${NSD_CreateGroupBox} 0 42u -1u $1 "$(ADDITIONALOPTIONS)"
 | 
							${NSD_CreateGroupBox} 0 42u -1u $1 "$(ADDITIONALOPTIONS)"
 | 
				
			||||||
	${EndIf}
 | 
						${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
						${NSD_CreateCheckbox} 6u 92u 285u 12u "Send computer information"
 | 
				
			||||||
 | 
						Pop $R4
 | 
				
			||||||
 | 
						${NSD_Check} $R4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						${NSD_CreateLabel} 17u 105u -20u 43u "Your computer's Windows version, language, and hardware capabilities will be reported once during installation to improve Rainmeter. No personal information will be sent."
 | 
				
			||||||
 | 
						Pop $0
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	; Set default directory
 | 
						; Set default directory
 | 
				
			||||||
	${If} $InstallPortable == 1
 | 
						${If} $InstallPortable == 1
 | 
				
			||||||
		${GetRoot} "$WINDIR" $0
 | 
							${GetRoot} "$WINDIR" $0
 | 
				
			||||||
@@ -471,6 +489,19 @@ Function PageOptionsOnLeave
 | 
				
			|||||||
		${NSD_GetState} $R3 $AutoStartup
 | 
							${NSD_GetState} $R3 $AutoStartup
 | 
				
			||||||
	${EndIf}
 | 
						${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
						${NSD_GetState} $R4 $SendStatistics
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						${If} ${FileExists} "$INSTDIR\Rainmeter.exe"
 | 
				
			||||||
 | 
							MoreInfo::GetFileVersion "$INSTDIR\Rainmeter.exe"
 | 
				
			||||||
 | 
							Pop $0
 | 
				
			||||||
 | 
							${VersionCompare} "${VER}.0.${REV}" "$0" $1
 | 
				
			||||||
 | 
							${If} $1 != 1
 | 
				
			||||||
 | 
								StrCpy $SendStatistics "0"
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
						${EndIf}
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	${If} $InstallPortable != 1
 | 
						${If} $InstallPortable != 1
 | 
				
			||||||
		${IfNot} ${UAC_IsAdmin}
 | 
							${IfNot} ${UAC_IsAdmin}
 | 
				
			||||||
			; UAC_IsAdmin seems to return incorrect result sometimes. Recheck with UserInfo::GetAccountType to be sure.
 | 
								; UAC_IsAdmin seems to return incorrect result sometimes. Recheck with UserInfo::GetAccountType to be sure.
 | 
				
			||||||
@@ -660,6 +691,49 @@ Section
 | 
				
			|||||||
		Sleep 500
 | 
							Sleep 500
 | 
				
			||||||
	${Next}
 | 
						${Next}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					!ifndef BETA
 | 
				
			||||||
 | 
						${IfNot} ${Silent}
 | 
				
			||||||
 | 
						${AndIf} $SendStatistics == 1
 | 
				
			||||||
 | 
							System::Call "advapi32::GetUserName(t .r0, *i ${NSIS_MAX_STRLEN} r1) i.r2"
 | 
				
			||||||
 | 
							${If} ${RunningX64}
 | 
				
			||||||
 | 
								SetRegView 64
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
							ReadRegStr $1 HKLM "SOFTWARE\Microsoft\Cryptography" "MachineGuid"
 | 
				
			||||||
 | 
							${If} ${RunningX64}
 | 
				
			||||||
 | 
								SetRegView 32
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
							MD5::GetMD5String "$0$1"
 | 
				
			||||||
 | 
							Pop $R0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							${WinVerGetMajor} $R1
 | 
				
			||||||
 | 
							${WinVerGetMinor} $R2
 | 
				
			||||||
 | 
							${WinVerGetServicePackLevel} $R3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							System::Call 'kernel32::LoadLibrary(t"d2d1.dll")i.r0'
 | 
				
			||||||
 | 
							${If} $0 <> 0
 | 
				
			||||||
 | 
								StrCpy $R4 "1"
 | 
				
			||||||
 | 
								System::Call 'kernel32::FreeLibrary(i r0)'
 | 
				
			||||||
 | 
							${Else}
 | 
				
			||||||
 | 
								StrCpy $R4 "0"
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							System::Call 'kernel32::IsProcessorFeaturePresent(i${PF_XMMI_INSTRUCTIONS_AVAILABLE})i.r5'
 | 
				
			||||||
 | 
							${If} $5 != 0
 | 
				
			||||||
 | 
								StrCpy $R5 "1"
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							System::Call 'kernel32::IsProcessorFeaturePresent(i${PF_XMMI64_INSTRUCTIONS_AVAILABLE})i.r6'
 | 
				
			||||||
 | 
							${If} $6 != 0
 | 
				
			||||||
 | 
								StrCpy $R6 "1"
 | 
				
			||||||
 | 
							${EndIf}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							System::Call 'kernel32::GetUserDefaultUILanguage() i.R7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							NSISdl::download_quiet /TIMEOUT=30000 "http://rainmeter.net/stat/${VER}.php?id=$R0&vmj=$R1&vmi=$R2&vsp=$R3&d2d=$R4&sse=$R5&sse2=$R6&uilang=$R7&lang=$LANGUAGE" "$PLUGINSDIR\_"
 | 
				
			||||||
 | 
							Delete "$PLUGINSDIR\_"
 | 
				
			||||||
 | 
						${EndIf}
 | 
				
			||||||
 | 
					!endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	; Move Rainmeter.ini to %APPDATA% if needed
 | 
						; Move Rainmeter.ini to %APPDATA% if needed
 | 
				
			||||||
	${IfNot} ${Silent}
 | 
						${IfNot} ${Silent}
 | 
				
			||||||
	${AndIf} ${FileExists} "$INSTDIR\Rainmeter.ini"
 | 
						${AndIf} ${FileExists} "$INSTDIR\Rainmeter.ini"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user