@@ -23,6 +23,8 @@ Unicode True
2323!include .\steamdetect.nsh
2424!include .\dlmacro.nsh
2525
26+ !define CSIDL_COMMON_DOCUMENTS 0x002E ; Define CSIDL_COMMON_DOCUMENTS if not already defined
27+
2628!define SF_USELECTED 0
2729!define MUI_ICON " run.ico"
2830!define MUI_HEADERIMAGE
@@ -63,6 +65,7 @@ Unicode True
6365!define SVRFeederDLFileZip " SlimeVR-Feeder-App-latest.zip"
6466
6567Var JREneedInstall
68+ Var /GLOBAL PUBLIC
6669Var /GLOBAL SteamVRResult
6770Var /GLOBAL SteamVRLabelID
6871Var /GLOBAL SteamVRLabelTxt
@@ -117,6 +120,13 @@ Function .onInit
117120 ReadRegStr $0 HKLM SOFTWARE\Valve\Steam InstallPath
118121 ${EndIf}
119122 StrCpy $STEAMDIR $0
123+
124+ ; Get "Public" user profile folder
125+ StrCpy $0 " "
126+ System::Call ' shell32::SHGetFolderPathW(i 0, i ${CSIDL_COMMON_DOCUMENTS}, i 0, i 0, t .r0)'
127+ ${GetParent} $0 $0
128+ StrCpy $PUBLIC $0
129+
120130FunctionEnd
121131
122132!insertmacro ProcessCheck " un." " SteamVRResult"
@@ -439,7 +449,7 @@ Section "SlimeVR Server" SEC_SERVER
439449 SetOutPath $INSTDIR
440450
441451 !insertmacro dlFile " ${SVRServerURLType}" " SlimeVR Server" " ${SVRServerVersion}" " ${SVRServerDLURL}" " ${SVRServerDLFileZip}"
442- !insertmacro unzipFile " SlimeVR Server" " ${SVRServerVersion}" " ${SLIMETEMP}\${SVRServerDLFileZip}" " SlimeVR"
452+ !insertmacro unzipFile " SlimeVR Server" " ${SVRServerVersion}" " ${SLIMETEMP}\${SVRServerDLFileZip}" " ${SLIMETEMP}\ SlimeVR"
443453
444454 ${If} $SELECTED_INSTALLER_ACTION == " update"
445455 Delete " $INSTDIR\slimevr-ui.exe"
@@ -481,7 +491,7 @@ Section "Java JRE" SEC_JRE
481491 SectionIn RO
482492
483493 !insertmacro dlFile " ${JREURLType}" " Java JRE" " ${JREVersion}" " ${JREDLURL}" " ${JREDLFileZip}"
484- !insertmacro unzipFile " Java JRE" " ${JREVersion}" " ${SLIMETEMP}\${JREDLFileZip}" " OpenJDK"
494+ !insertmacro unzipFile " Java JRE" " ${JREVersion}" " ${SLIMETEMP}\${JREDLFileZip}" " ${SLIMETEMP}\ OpenJDK"
485495
486496 # Make sure to delete all files on a update from jre, so if there is a new version no old files are left.
487497 IfFileExists " $INSTDIR\jre" 0 SEC_JRE_DIRNOTFOUND
@@ -504,13 +514,31 @@ Section "SteamVR Driver" SEC_VRDRIVER
504514 SetOutPath $INSTDIR
505515
506516 !insertmacro dlFile " ${SVRDriverURLType}" " SteamVR Driver" " ${SVRDriverVersion}" " ${SVRDriverDLURL}" " ${SVRDriverDLFileZip}"
507- !insertmacro unzipFile " SteamVR Driver" " ${SVRDriverVersion}" " ${SLIMETEMP}\${SVRDriverDLFileZip}" " slimevr-openvr-driver-win64"
517+ !insertmacro unzipFile " SteamVR Driver" " ${SVRDriverVersion}" " ${SLIMETEMP}\${SVRDriverDLFileZip}" " ${SLIMETEMP}\ slimevr-openvr-driver-win64"
508518
509519 # Include SteamVR powershell script to register/unregister driver
510520 File " steamvr.ps1"
521+ File " steamcleanexternaldrivers.ps1"
511522
512- DetailPrint " Copying SteamVR Driver to SteamVR..."
523+ DetailPrint " Removing old external drivers in SteamVR Config ..."
513524 # If powershell is present - rely on automatic detection.
525+
526+ ${DisableX64FSRedirection}
527+ CreateShortcut " $INSTDIR\steamcleanexternaldrivers.lnk" " $SYSDIR\WindowsPowerShell\v1.0\powershell.exe" ' -ExecutionPolicy Bypass -WindowStyle Hidden -File "$INSTDIR\steamcleanexternaldrivers.ps1"' " $INSTDIR\steamcleanexternaldrivers.ps1" 0
528+ Exec " explorer.exe $INSTDIR\steamcleanexternaldrivers.lnk"
529+ Sleep 5000
530+ ${EnableX64FSRedirection}
531+ IfFileExists " $PUBLIC\Documents\SlimeVRUninstall_log.txt" 0 no_log
532+ FileOpen $1 " $PUBLIC\Documents\SlimeVRUninstall_log.txt" r
533+ FileRead $1 $2
534+ DetailPrint " $2"
535+ FileClose $1
536+ Delete " $PUBLIC\Documents\SlimeVRUninstall_log.txt"
537+ no_log:
538+ Delete " $INSTDIR\steamcleanexternaldrivers.lnk"
539+ Delete " $INSTDIR\steamcleanexternaldrivers.ps1"
540+
541+ DetailPrint " Copying SteamVR Driver to SteamVR..."
514542 ${DisableX64FSRedirection}
515543 nsExec::ExecToLog ' "$SYSDIR\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -File "$INSTDIR\steamvr.ps1" -SteamPath "$STEAMDIR" -DriverPath "${SLIMETEMP}\slimevr-openvr-driver-win64\slimevr"' $0
516544 ${EnableX64FSRedirection}
@@ -530,7 +558,7 @@ Section "SlimeVR Feeder App" SEC_FEEDER_APP
530558
531559 !insertmacro dlFile " ${SVRFeederURLType}" " SlimeVR Feeder App" " ${SVRFeederVersion}" " ${SVRFeederDLURL}" " ${SVRFeederDLFileZip}"
532560 # The zip contains a folder named SlimeVR-Feeder-App-win64
533- !insertmacro unzipFile " SlimeVR Feeder App" " ${SVRFeederVersion}" " ${SLIMETEMP}\${SVRFeederDLFileZip}" " "
561+ !insertmacro unzipFile " SlimeVR Feeder App" " ${SVRFeederVersion}" " ${SLIMETEMP}\${SVRFeederDLFileZip}" " ${SLIMETEMP} "
534562
535563 DetailPrint " Copying SlimeVR Feeder App..."
536564 CopyFiles /SILENT " ${SLIMETEMP}\SlimeVR-Feeder-App-win64\*" " $INSTDIR\Feeder-App"
0 commit comments