UI: Various installer script updates
Remove support for Vista as the platform update is no longer available from Microsoft. Allows retrying certain error conditions such as when OBS is already running. Moved in-use file checks to after the install directory is selected. Added some comments.
This commit is contained in:
parent
9815876b45
commit
fc18213b37
@ -1,3 +1,19 @@
|
||||
;
|
||||
; NSIS Installer Script for OBS Studio, https://obsproject.com/
|
||||
;
|
||||
; This installer script is designed only for the release process
|
||||
; of OBS Studio. It requires a lot of files to be in exactly the
|
||||
; right places. If you're making a fork, it's strongly suggested
|
||||
; that you make your own installer.
|
||||
;
|
||||
; If you choose to use this script anyway, be absolutely sure you
|
||||
; have replaced every OBS specific check, whether process names,
|
||||
; application names, files, registry entries, etc.
|
||||
;
|
||||
; This script also requires OBSInstallerUtils for additional
|
||||
; functions. You can find it at
|
||||
; https://github.com/notr1ch/OBSInstallerUtils
|
||||
|
||||
Unicode true
|
||||
ManifestDPIAware true
|
||||
|
||||
@ -82,42 +98,11 @@ Function PreReqCheck
|
||||
; Abort on XP or lower
|
||||
!endif
|
||||
|
||||
${If} ${AtMostWinXP}
|
||||
MessageBox MB_OK|MB_ICONSTOP "Due to extensive use of DirectX 10 features, ${APPNAME} requires Windows Vista SP2 or higher and cannot be installed on this version of Windows."
|
||||
${If} ${AtMostWinVista}
|
||||
MessageBox MB_OK|MB_ICONSTOP "Due to extensive use of DirectX 10 features, ${APPNAME} requires Windows 7 or higher and cannot be installed on this version of Windows."
|
||||
Quit
|
||||
${EndIf}
|
||||
|
||||
; Vista specific checks
|
||||
${If} ${IsWinVista}
|
||||
; Check Vista SP2
|
||||
${If} ${AtMostServicePack} 1
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "${APPNAME} requires Service Pack 2 when running on Vista. Would you like to download it?" IDYES sptrue IDNO spfalse
|
||||
sptrue:
|
||||
ExecShell "open" "http://windows.microsoft.com/en-US/windows-vista/Learn-how-to-install-Windows-Vista-Service-Pack-2-SP2"
|
||||
spfalse:
|
||||
Quit
|
||||
${EndIf}
|
||||
|
||||
; Check Vista Platform Update
|
||||
nsexec::exectostack "$SYSDIR\wbem\wmic.exe qfe where HotFixID='KB971512' get HotFixID /Format:list"
|
||||
pop $0
|
||||
pop $0
|
||||
strcpy $1 $0 17 6
|
||||
strcmps $1 "HotFixID=KB971512" gotPatch
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "${APPNAME} requires the Windows Vista Platform Update. Would you like to download it?" IDYES putrue IDNO pufalse
|
||||
putrue:
|
||||
${If} ${RunningX64}
|
||||
; 64 bit
|
||||
ExecShell "open" "http://www.microsoft.com/en-us/download/details.aspx?id=4390"
|
||||
${Else}
|
||||
; 32 bit
|
||||
ExecShell "open" "http://www.microsoft.com/en-us/download/details.aspx?id=3274"
|
||||
${EndIf}
|
||||
pufalse:
|
||||
Quit
|
||||
gotPatch:
|
||||
${EndIf}
|
||||
|
||||
!ifdef INSTALL64
|
||||
; 64 bit Visual Studio 2017 runtime check
|
||||
ClearErrors
|
||||
@ -128,7 +113,7 @@ Function PreReqCheck
|
||||
RMDir "$TEMP\OBS"
|
||||
IntCmp $R0 126 vs2017Missing_64 vs2017OK_64
|
||||
vs2017Missing_64:
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Your system is missing runtime components that ${APPNAME} requires. Would you like to download them?" IDYES vs2017true_64 IDNO vs2017false_64
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Your system is missing runtime components that ${APPNAME} requires. Would you like to download them?" IDYES vs2017true_64 IDNO vs2017false_64
|
||||
vs2017true_64:
|
||||
ExecShell "open" "https://obsproject.com/visual-studio-2017-runtimes-64-bit"
|
||||
vs2017false_64:
|
||||
@ -142,7 +127,7 @@ Function PreReqCheck
|
||||
GetDLLVersion "msvcp140.DLL" $R0 $R1
|
||||
IfErrors vs2017Missing_32 vs2017OK_32
|
||||
vs2017Missing_32:
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Your system is missing runtime components that ${APPNAME} requires. Would you like to download them?" IDYES vs2017true_32 IDNO vs2017false_32
|
||||
MessageBox MB_YESNO|MB_ICONEXCLAMATION "Your system is missing runtime components that ${APPNAME} requires. Would you like to download them?" IDYES vs2017true_32 IDNO vs2017false_32
|
||||
vs2017true_32:
|
||||
ExecShell "open" "https://obsproject.com/visual-studio-2017-runtimes-32-bit"
|
||||
vs2017false_32:
|
||||
@ -213,23 +198,27 @@ Function PreReqCheck
|
||||
ClearErrors
|
||||
|
||||
; Check previous instance
|
||||
|
||||
check32BitRunning:
|
||||
OBSInstallerUtils::IsProcessRunning "obs32.exe"
|
||||
IntCmp $R0 1 0 notRunning1
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "${APPNAME} is already running. Please close it first before installing a new version." /SD IDOK
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "${APPNAME} is already running. Please close it first before installing a new version." /SD IDCANCEL IDRETRY check32BitRunning
|
||||
Quit
|
||||
notRunning1:
|
||||
|
||||
${if} ${RunningX64}
|
||||
check64BitRunning:
|
||||
OBSInstallerUtils::IsProcessRunning "obs64.exe"
|
||||
IntCmp $R0 1 0 notRunning2
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "${APPNAME} is already running. Please close it first before installing a new version." /SD IDOK
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "${APPNAME} is already running. Please close it first before installing a new version." /SD IDCANCEL IDRETRY check64BitRunning
|
||||
Quit
|
||||
notRunning2:
|
||||
${endif}
|
||||
FunctionEnd
|
||||
|
||||
SetShellVarContext all
|
||||
Var dllFilesInUse
|
||||
|
||||
Function checkDLLs
|
||||
OBSInstallerUtils::ResetInUseFileChecks
|
||||
OBSInstallerUtils::AddInUseFileCheck "$INSTDIR\data\obs-plugins\win-capture\graphics-hook32.dll"
|
||||
OBSInstallerUtils::AddInUseFileCheck "$INSTDIR\data\obs-plugins\win-capture\graphics-hook64.dll"
|
||||
OBSInstallerUtils::AddInUseFileCheck "$INSTDIR\data\obs-plugins\win-dshow\obs-virtualcam-module32.dll"
|
||||
@ -237,14 +226,17 @@ Function PreReqCheck
|
||||
OBSInstallerUtils::AddInUseFileCheck "$APPDATA\obs-studio-hook\graphics-hook32.dll"
|
||||
OBSInstallerUtils::AddInUseFileCheck "$APPDATA\obs-studio-hook\graphics-hook64.dll"
|
||||
OBSInstallerUtils::GetAppNameForInUseFiles
|
||||
StrCmp $R0 "" gameCaptureNotRunning
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "Game Capture files are being used by the following applications:$\r$\n$\r$\n$R0$\r$\nPlease close these applications before installing a new version of OBS." /SD IDOK
|
||||
Quit
|
||||
gameCaptureNotRunning:
|
||||
StrCpy $dllFilesInUse "$R0"
|
||||
FunctionEnd
|
||||
|
||||
Function filesInUse
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "Some files were not able to be installed. If this is the first time you are installing OBS, please disable any anti-virus or other security software and try again. If you are re-installing or updating OBS, close any applications that may be have been hooked, or reboot and try again." /SD IDOK
|
||||
Function checkFilesInUse
|
||||
retryFileChecks:
|
||||
Call checkDLLs
|
||||
StrCmp $dllFilesInUse "" dllsNotInUse
|
||||
MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION "OBS files are being used by the following applications:$\r$\n$\r$\n$dllFilesInUse$\r$\nPlease close these applications to continue setup." /SD IDCANCEL IDRETRY retryFileChecks
|
||||
Quit
|
||||
|
||||
dllsNotInUse:
|
||||
FunctionEnd
|
||||
|
||||
Function LaunchOBS
|
||||
@ -255,10 +247,10 @@ Function LaunchOBS
|
||||
!endif
|
||||
FunctionEnd
|
||||
|
||||
Var outputErrors
|
||||
|
||||
Section "OBS Studio" SecCore
|
||||
|
||||
Call checkFilesInUse
|
||||
|
||||
; Set Section properties
|
||||
SectionIn RO
|
||||
SetOverwrite on
|
||||
@ -315,11 +307,6 @@ Section "OBS Studio" SecCore
|
||||
File "new\core\data\obs-plugins\win-capture\obs-vulkan64.json"
|
||||
OBSInstallerUtils::AddAllApplicationPackages "$APPDATA\obs-studio-hook"
|
||||
|
||||
ClearErrors
|
||||
|
||||
IfErrors 0 +2
|
||||
StrCpy $outputErrors "yes"
|
||||
|
||||
WriteUninstaller "$INSTDIR\uninstall.exe"
|
||||
|
||||
!ifdef INSTALL64
|
||||
@ -342,9 +329,6 @@ Section "OBS Studio" SecCore
|
||||
!endif
|
||||
|
||||
CreateShortCut "$SMPROGRAMS\OBS Studio\Uninstall.lnk" "$INSTDIR\uninstall.exe"
|
||||
|
||||
StrCmp $outputErrors "yes" 0 +2
|
||||
Call filesInUse
|
||||
SectionEnd
|
||||
|
||||
Section -FinishSection
|
||||
@ -473,7 +457,7 @@ SectionEnd
|
||||
|
||||
!insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UninstallSection1} "Remove the OBS program files."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UninstallSection2} "Removes all settings, plugins, scenes and sources, profiles, log files and other application data."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${UninstallSection2} "Removes all settings, scenes and sources, profiles, log files and other application data."
|
||||
!insertmacro MUI_UNFUNCTION_DESCRIPTION_END
|
||||
|
||||
; Version information
|
||||
|
Loading…
x
Reference in New Issue
Block a user