Warning, /network/falkon/windows/installer.nsi is written in an unsupported language. File is not indexed.
0001 ; Falkon Windows Installer NSIS Script 0002 ; Copyright (C) 2010-2017 David Rosca <nowrep@gmail.com> 0003 ; 2012-2017 S. Razi Alavizadeh <s.r.alavizadeh@gmail.com> 0004 ; 0005 ; For compiling this script you need following plugins: 0006 ; FindProcDLL_plug-in, KillProcDLL_plug-in and 'AllAssociation.nsh' needs 0007 ; Registry_plug-in, Application_Association_Registration_plug-in 0008 ; Unicode version of them can be downloaded from: 0009 ; http://sourceforge.net/projects/findkillprocuni/files/bin/ 0010 ; http://nsis.sourceforge.net/Application_Association_Registration_plug-in 0011 ; http://nsis.sourceforge.net/Registry_plug-in 0012 0013 !ifndef CUSTOM 0014 !define VERSION 3.0.0 0015 !define ARCH x86 0016 !define MSVC_VER 140 0017 !define OPENSSL_BIN_DIR . 0018 !define MSVC_REDIST_DIR . 0019 !define FALKON_SRC_DIR ..\..\ 0020 !define FALKON_BIN_DIR . 0021 !define ICU_BIN_DIR . 0022 !define QT_DIR . 0023 !define QT_BIN_DIR . 0024 !define QT_PLUGINS_DIR . 0025 !define QTWEBENGINE_DICTIONARIES_DIR qtwebengine_dictionaries 0026 !undef PORTABLE 0027 !endif 0028 0029 ; WinVer.nsh was added in the same release that RequestExecutionLevel so check 0030 ; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is 0031 ; available. 0032 !include /NONFATAL WinVer.nsh 0033 !include x64.nsh 0034 0035 Var installAsPortable 0036 RequestExecutionLevel admin 0037 0038 !addplugindir "wininstall\" 0039 0040 !include "StdUtils.nsh" 0041 !include "FileFunc.nsh" 0042 !include "wininstall\AllAssociation.nsh" 0043 SetCompressor /SOLID /FINAL lzma 0044 0045 !define PRODUCT_NAME "Falkon" 0046 !define /date PRODUCT_VERSION "${VERSION}" 0047 !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\falkon.exe" 0048 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" 0049 !define PRODUCT_UNINST_ROOT_KEY "HKLM" 0050 !define PRODUCT_CAPABILITIES_KEY "Software\${PRODUCT_NAME}\Capabilities" 0051 0052 !include "MUI.nsh" 0053 !define MUI_ABORTWARNING 0054 !define MUI_ICON "wininstall\install.ico" 0055 !define MUI_UNICON "wininstall\uninstall.ico" 0056 !define MUI_WELCOMEFINISHPAGE_BITMAP "wininstall\welcome.bmp" 0057 !define MUI_UNWELCOMEFINISHPAGE_BITMAP "wininstall\welcome.bmp" 0058 0059 !insertmacro MUI_PAGE_WELCOME 0060 !insertmacro MUI_PAGE_LICENSE ${FALKON_BIN_DIR}\COPYRIGHT.txt 0061 ;;; 0062 Page custom InstallationModePage InstallationModeLeave 0063 ;;; 0064 !define MUI_PAGE_CUSTOMFUNCTION_PRE "SkipComponentsIfPortableInstalltion" 0065 !insertmacro MUI_PAGE_COMPONENTS 0066 !insertmacro MUI_PAGE_DIRECTORY 0067 ;;; 0068 Page custom installationInfoPage installationInfoLeave 0069 ;;; 0070 !insertmacro MUI_PAGE_INSTFILES 0071 0072 !define MUI_FINISHPAGE_RUN 0073 !define MUI_FINISHPAGE_RUN_FUNCTION "RunFalkonAsUser" 0074 !insertmacro MUI_PAGE_FINISH 0075 0076 !insertmacro MUI_UNPAGE_WELCOME 0077 !insertmacro MUI_UNPAGE_CONFIRM 0078 !insertmacro MUI_UNPAGE_INSTFILES 0079 !insertmacro MUI_UNPAGE_FINISH 0080 0081 !insertmacro MUI_LANGUAGE "English" 0082 0083 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 0084 OutFile "${PRODUCT_NAME} Installer ${PRODUCT_VERSION}.exe" 0085 InstallDir "$PROGRAMFILES\${PRODUCT_NAME}\" 0086 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" 0087 ShowInstDetails show 0088 ShowUnInstDetails show 0089 0090 !include "wininstall\strings.nsh" 0091 0092 Section "${TITLE_SecMain}" SecMain 0093 SectionIn RO 0094 FindProcDLL::FindProc "falkon.exe" 0095 IntCmp $R0 1 0 notRunning 0096 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "${MSG_RunningInstance}" /SD IDOK IDCANCEL AbortInstallation 0097 KillProcDLL::KillProc "falkon.exe" 0098 Sleep 100 0099 Goto notRunning 0100 AbortInstallation: 0101 Abort "${MSG_InstallationCanceled}" 0102 0103 notRunning: 0104 SetOverwrite on 0105 0106 SetOutPath "$INSTDIR" 0107 File "${FALKON_BIN_DIR}\COPYRIGHT.txt" 0108 File "${FALKON_BIN_DIR}\falkon.exe" 0109 File "${FALKON_BIN_DIR}\falkonprivate.dll" 0110 File "${FALKON_BIN_DIR}\qt.conf" 0111 File "${OPENSSL_BIN_DIR}\libeay32.dll" 0112 File "${OPENSSL_BIN_DIR}\ssleay32.dll" 0113 File /nonfatal "${OPENSSL_BIN_DIR}\msvcr*.dll" 0114 File "${MSVC_REDIST_DIR}\*" 0115 File "${ICU_BIN_DIR}\icudt54.dll" 0116 File "${ICU_BIN_DIR}\icuin54.dll" 0117 File "${ICU_BIN_DIR}\icuuc54.dll" 0118 File "${QT_BIN_DIR}\libEGL.dll" 0119 File "${QT_BIN_DIR}\libGLESv2.dll" 0120 File "${QT_BIN_DIR}\opengl32sw.dll" 0121 File "${QT_BIN_DIR}\D3Dcompiler_47.dll" 0122 File "${QT_BIN_DIR}\Qt5Core.dll" 0123 File "${QT_BIN_DIR}\Qt5Gui.dll" 0124 File "${QT_BIN_DIR}\Qt5Network.dll" 0125 File "${QT_BIN_DIR}\Qt5Positioning.dll" 0126 File "${QT_BIN_DIR}\Qt5PrintSupport.dll" 0127 File "${QT_BIN_DIR}\Qt5Qml.dll" 0128 File "${QT_BIN_DIR}\Qt5Quick.dll" 0129 File "${QT_BIN_DIR}\Qt5QuickWidgets.dll" 0130 File "${QT_BIN_DIR}\Qt5Sql.dll" 0131 File "${QT_BIN_DIR}\Qt5Svg.dll" 0132 File "${QT_BIN_DIR}\Qt5WinExtras.dll" 0133 File "${QT_BIN_DIR}\Qt5WebEngine.dll" 0134 File "${QT_BIN_DIR}\Qt5WebEngineCore.dll" 0135 File "${QT_BIN_DIR}\Qt5WebEngineWidgets.dll" 0136 File "${QT_BIN_DIR}\Qt5WebChannel.dll" 0137 File "${QT_BIN_DIR}\Qt5Widgets.dll" 0138 File "${QT_BIN_DIR}\QtWebEngineProcess.exe" 0139 0140 SetOutPath "$INSTDIR\iconengines" 0141 File "${QT_PLUGINS_DIR}\iconengines\qsvgicon.dll" 0142 0143 SetOutPath "$INSTDIR\imageformats" 0144 File "${QT_PLUGINS_DIR}\imageformats\*.dll" 0145 0146 SetOutPath "$INSTDIR\platforms" 0147 File "${QT_PLUGINS_DIR}\platforms\qwindows.dll" 0148 0149 SetOutPath "$INSTDIR\printsupport" 0150 File "${QT_PLUGINS_DIR}\printsupport\windowsprintersupport.dll" 0151 0152 SetOutPath "$INSTDIR\qml\QtQuick.2" 0153 File "${QT_DIR}\qml\QtQuick.2\*" 0154 0155 SetOutPath "$INSTDIR\qml\QtWebEngine" 0156 File "${QT_DIR}\qml\QtWebEngine\*" 0157 0158 SetOutPath "$INSTDIR\resources" 0159 File "${QT_DIR}\resources\*" 0160 0161 SetOutPath "$INSTDIR\sqldrivers" 0162 File "${QT_PLUGINS_DIR}\sqldrivers\qsqlite.dll" 0163 0164 SetOutPath "$INSTDIR\styles" 0165 File "${QT_PLUGINS_DIR}\styles\*.dll" 0166 0167 call RegisterCapabilities 0168 0169 StrCmp $installAsPortable "YES" 0 skipPortableMode 0170 FileOpen $0 $INSTDIR\falkon.conf w 0171 FileWrite $0 "[Config]$\r$\n" 0172 FileWrite $0 "Portable=true$\r$\n" 0173 0174 StrCmp $0 "" 0 closeHandle 0175 MessageBox MB_OK|MB_ICONEXCLAMATION "${MSG_PortableWriteError}" 0176 goto skipPortableMode 0177 0178 closeHandle: 0179 FileClose $0 0180 0181 skipPortableMode: 0182 SectionEnd 0183 0184 SectionGroup "${TITLE_SecThemes}" SecThemes 0185 0186 Section Default SecDefault 0187 SectionIn RO 0188 SetOutPath "$INSTDIR\themes\windows" 0189 File "${FALKON_SRC_DIR}\themes\windows\*" 0190 SetOutPath "$INSTDIR\themes\windows\images" 0191 File "${FALKON_SRC_DIR}\themes\windows\images\*" 0192 SectionEnd 0193 0194 Section Chrome SecChrome 0195 SetOutPath "$INSTDIR\themes\chrome" 0196 File "${FALKON_SRC_DIR}\themes\chrome\*" 0197 SetOutPath "$INSTDIR\themes\chrome\images" 0198 File "${FALKON_SRC_DIR}\themes\chrome\images\*" 0199 SectionEnd 0200 0201 Section Mac SecMac 0202 SetOutPath "$INSTDIR\themes\mac" 0203 File "${FALKON_SRC_DIR}\themes\mac\*" 0204 SetOutPath "$INSTDIR\themes\mac\images" 0205 File "${FALKON_SRC_DIR}\themes\mac\images\*" 0206 SectionEnd 0207 SectionGroupEnd 0208 0209 Section "${TITLE_SecTranslations}" SecTranslations 0210 SetOutPath "$INSTDIR\locale" 0211 File /r "${FALKON_BIN_DIR}\locale\*" 0212 0213 SetOutPath "$INSTDIR\translations\qtwebengine_locales" 0214 File "${QT_DIR}\translations\qtwebengine_locales\*" 0215 0216 SetOutPath "$INSTDIR\qtwebengine_dictionaries\doc" 0217 ; In some packages underline '_' is used and in some other packages dash '-' is used so we use wildcard 0218 File "${QTWEBENGINE_DICTIONARIES_DIR}\doc\README*en*US.txt" 0219 0220 SetOutPath "$INSTDIR\qtwebengine_dictionaries" 0221 ; in some packages *.bdic files use dash '-' instead of underline '_' followed by a version number. e.g. en-US-3-0.bdic 0222 File "${QTWEBENGINE_DICTIONARIES_DIR}\en*US*.bdic" 0223 SectionEnd 0224 0225 Section "${TITLE_SecPlugins}" SecPlugins 0226 SetOutPath "$INSTDIR\plugins" 0227 File "${FALKON_BIN_DIR}\plugins\*.dll" 0228 SectionEnd 0229 0230 0231 SectionGroup "${TITLE_SecSetASDefault}" SecSetASDefault 0232 Section "${TITLE_SecExtensions}" SecExtensions 0233 StrCmp $installAsPortable "NO" 0 skipSetExtentions 0234 SetOutPath "$INSTDIR" 0235 ${RegisterAssociation} ".htm" "$INSTDIR\falkon.exe" "FalkonHTML" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" "file" 0236 ${RegisterAssociation} ".html" "$INSTDIR\falkon.exe" "FalkonHTML" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" "file" 0237 ${UpdateSystemIcons} 0238 skipSetExtentions: 0239 SectionEnd 0240 0241 Section "${TITLE_SecProtocols}" SecProtocols 0242 StrCmp $installAsPortable "NO" 0 skipSecProtocols 0243 ${RegisterAssociation} "http" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" 0244 ${RegisterAssociation} "https" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" 0245 ${RegisterAssociation} "ftp" "$INSTDIR\falkon.exe" "FalkonURL" "Falkon URL" "$INSTDIR\falkon.exe,0" "protocol" 0246 ${UpdateSystemIcons} 0247 skipSecProtocols: 0248 SectionEnd 0249 SectionGroupEnd 0250 0251 Section -StartMenu 0252 StrCmp $installAsPortable "NO" 0 skipStartMenu 0253 SetOutPath "$INSTDIR" 0254 SetShellVarContext all 0255 CreateDirectory "$SMPROGRAMS\Falkon" 0256 CreateShortCut "$SMPROGRAMS\Falkon\Uninstall.lnk" "$INSTDIR\Uninstall.exe" 0257 CreateShortCut "$SMPROGRAMS\Falkon\Falkon.lnk" "$INSTDIR\falkon.exe" 0258 CreateShortCut "$SMPROGRAMS\Falkon\License.lnk" "$INSTDIR\COPYRIGHT.txt" 0259 skipStartMenu: 0260 SectionEnd 0261 0262 Section "${TITLE_SecDesktop}" SecDesktop 0263 StrCmp $installAsPortable "NO" 0 skipDesktopIcon 0264 SetOutPath "$INSTDIR" 0265 CreateShortCut "$DESKTOP\Falkon.lnk" "$INSTDIR\falkon.exe" "" 0266 skipDesktopIcon: 0267 SectionEnd 0268 0269 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN 0270 !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} "${DESC_SecMain}" 0271 !insertmacro MUI_DESCRIPTION_TEXT ${SecTranslations} "${DESC_SecTranslations}" 0272 !insertmacro MUI_DESCRIPTION_TEXT ${SecPlugins} "${DESC_SecPlugins}" 0273 0274 !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "${DESC_SecDesktop}" 0275 !insertmacro MUI_DESCRIPTION_TEXT ${SecExtensions} "${DESC_SecExtensions}" 0276 0277 !insertmacro MUI_DESCRIPTION_TEXT ${SecThemes} "${DESC_SecThemes}" 0278 !insertmacro MUI_DESCRIPTION_TEXT ${SecSetASDefault} "${DESC_SecSetASDefault}" 0279 !insertmacro MUI_DESCRIPTION_TEXT ${SecProtocols} "${DESC_SecProtocols}" 0280 !insertmacro MUI_FUNCTION_DESCRIPTION_END 0281 0282 Section -Uninstaller 0283 StrCmp $installAsPortable "NO" 0 skipUninstaller 0284 WriteUninstaller "$INSTDIR\uninstall.exe" 0285 WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\falkon.exe" 0286 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" 0287 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninstall.exe" 0288 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\falkon.exe" 0289 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" 0290 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "Falkon Team" 0291 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "HelpLink" "https://userbase.kde.org/Falkon" 0292 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" "$INSTDIR" 0293 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallSource" "$EXEDIR" 0294 WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "https://falkon.org" 0295 ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2 0296 WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" "$0" 0297 skipUninstaller: 0298 SectionEnd 0299 0300 Section Uninstall 0301 FindProcDLL::FindProc "falkon.exe" 0302 IntCmp $R0 1 0 notRunning 0303 MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "${MSG_RunningInstance}" /SD IDOK IDCANCEL AbortInstallation 0304 KillProcDLL::KillProc "falkon.exe" 0305 Sleep 100 0306 Goto notRunning 0307 AbortInstallation: 0308 Abort "${MSG_InstallationCanceled}" 0309 0310 notRunning: 0311 SetShellVarContext all 0312 Delete "$DESKTOP\Falkon.lnk" 0313 0314 Delete "$INSTDIR\falkon.exe" 0315 Delete "$INSTDIR\falkonprivate.dll" 0316 Delete "$INSTDIR\uninstall.exe" 0317 Delete "$INSTDIR\COPYRIGHT.txt" 0318 Delete "$INSTDIR\qt.conf" 0319 Delete "$INSTDIR\libeay32.dll" 0320 Delete "$INSTDIR\ssleay32.dll" 0321 Delete "$INSTDIR\libEGL.dll" 0322 Delete "$INSTDIR\libGLESv2.dll" 0323 Delete "$INSTDIR\opengl32sw.dll" 0324 Delete "$INSTDIR\D3Dcompiler_47.dll" 0325 Delete "$INSTDIR\QtWebEngineProcess.exe" 0326 0327 ; Wildcard delete to compact script of uninstall section 0328 Delete "$INSTDIR\icu*.dll" 0329 Delete "$INSTDIR\Qt5*.dll" 0330 Delete "$INSTDIR\msvc*.dll" 0331 Delete "$INSTDIR\vc*.dll" 0332 Delete "$INSTDIR\concrt*.dll" 0333 0334 ; Recursively delete folders in root of $INSTDIR 0335 RMDir /r "$INSTDIR\iconengines" 0336 RMDir /r "$INSTDIR\imageformats" 0337 RMDir /r "$INSTDIR\platforms" 0338 RMDir /r "$INSTDIR\printsupport" 0339 RMDir /r "$INSTDIR\qml" 0340 RMDir /r "$INSTDIR\resources" 0341 RMDir /r "$INSTDIR\translations" 0342 RMDir /r "$INSTDIR\sqldrivers" 0343 RMDir /r "$INSTDIR\styles" 0344 RMDir /r "$INSTDIR\qtwebengine_dictionaries" 0345 RMDir /r "$INSTDIR\themes" 0346 RMDir /r "$INSTDIR\locale" 0347 RMDir /r "$INSTDIR\plugins" 0348 0349 ; Remove $INSTDIR if it is empty 0350 RMDir "$INSTDIR" 0351 0352 ; Remove start menu programs folder 0353 RMDir /r "$SMPROGRAMS\${PRODUCT_NAME}" 0354 0355 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 0356 DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" 0357 0358 DeleteRegKey HKLM "Software\${PRODUCT_NAME}" 0359 DeleteRegValue HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}" 0360 0361 ${UnRegisterAssociation} ".htm" "FalkonHTML" "$INSTDIR\falkon.exe" "file" 0362 ${UnRegisterAssociation} ".html" "FalkonHTML" "$INSTDIR\falkon.exe" "file" 0363 ${UnRegisterAssociation} "http" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" 0364 ${UnRegisterAssociation} "https" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" 0365 ${UnRegisterAssociation} "ftp" "FalkonURL" "$INSTDIR\falkon.exe" "protocol" 0366 ${UpdateSystemIcons} 0367 SectionEnd 0368 0369 BrandingText "${PRODUCT_NAME} ${PRODUCT_VERSION} Installer" 0370 0371 Function .onInit 0372 ;Prevent running installer of 64-bit Falkon on 32-bit Windows 0373 ${If} ${RunningX64} 0374 ${If} ${ARCH} == "x64" 0375 StrCpy $InstDir "$PROGRAMFILES64\${PRODUCT_NAME}\" 0376 ${Else} 0377 StrCpy $InstDir "$PROGRAMFILES32\${PRODUCT_NAME}\" 0378 ${Endif} 0379 ${Else} 0380 ${If} ${ARCH} == "x64" 0381 MessageBox MB_OK|MB_ICONEXCLAMATION "This installation requiers Windows x64!" 0382 Quit 0383 ${Else} 0384 StrCpy $InstDir "$PROGRAMFILES\${PRODUCT_NAME}\" 0385 ${Endif} 0386 ${EndIf} 0387 0388 ;Extract InstallOptions files 0389 ;$PLUGINSDIR will automatically be removed when the installer closes 0390 InitPluginsDir 0391 File /oname=$PLUGINSDIR\portable-mode.ini "portable-mode.ini" 0392 File /oname=$PLUGINSDIR\portable-info.ini "portable-info.ini" 0393 0394 0395 ;Prevent Multiple Instances 0396 System::Call 'kernel32::CreateMutexA(i 0, i 0, t "FalkonInstaller-4ECB4694-2C39-4f93-9122-A986344C4E7B") i .r1 ?e' 0397 Pop $R0 0398 StrCmp $R0 0 skip 0399 ;Return when running silent instalation 0400 IfSilent doAbort 0 0401 MessageBox MB_OK|MB_ICONEXCLAMATION "Falkon installer is already running!" /SD IDOK 0402 doAbort: 0403 Abort 0404 skip: 0405 call notifyUserIfHotfixNeeded 0406 FunctionEnd 0407 0408 Function RegisterCapabilities 0409 StrCmp $installAsPortable "NO" 0 skipRegisterCapabilities 0410 !ifdef ___WINVER__NSH___ 0411 ${If} ${AtLeastWinVista} 0412 ; even if we don't associate Falkon as default for ".htm" and ".html" 0413 ; we need to write these ProgIds for future use! 0414 ;(e.g.: user uses "Default Programs" on Win7 or Vista to set Falkon as default.) 0415 ${CreateProgId} "FalkonHTML" "$INSTDIR\falkon.exe" "Falkon HTML Document" "$INSTDIR\falkon.exe,1" 0416 ${CreateProgId} "FalkonURL" "$INSTDIR\falkon.exe" "Falkon URL" "$INSTDIR\falkon.exe,0" 0417 0418 ; note: these lines just introduce capabilities of Falkon to OS and don't change defaults! 0419 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationDescription" "${PRODUCT_DESC}" 0420 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationIcon" "$INSTDIR\falkon.exe,0" 0421 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}" "ApplicationName" "${PRODUCT_NAME}" 0422 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".htm" "FalkonHTML" 0423 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\FileAssociations" ".html" "FalkonHTML" 0424 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "http" "FalkonURL" 0425 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "https" "FalkonURL" 0426 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\URLAssociations" "ftp" "FalkonURL" 0427 WriteRegStr HKLM "${PRODUCT_CAPABILITIES_KEY}\Startmenu" "StartMenuInternet" "$INSTDIR\falkon.exe" 0428 WriteRegStr HKLM "SOFTWARE\RegisteredApplications" "${PRODUCT_NAME}" "${PRODUCT_CAPABILITIES_KEY}" 0429 ${EndIf} 0430 !endif 0431 skipRegisterCapabilities: 0432 FunctionEnd 0433 0434 Function RunFalkonAsUser 0435 ${StdUtils.ExecShellAsUser} $0 "$INSTDIR\falkon.exe" "open" "" 0436 FunctionEnd 0437 0438 Function un.onInit 0439 ReadRegStr $R0 ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallLocation" 0440 IfErrors +2 0 0441 StrCpy $INSTDIR "$R0" 0442 0443 IfFileExists "$INSTDIR\falkon.exe" found 0444 MessageBox MB_OK|MB_ICONSTOP "${MSG_InvalidInstallPath}" 0445 Abort 0446 found: 0447 FunctionEnd 0448 0449 Function InstallationModePage 0450 !insertmacro MUI_HEADER_TEXT "${TITLE_InstallationMode}" "${DESC_InstallationMode}" 0451 0452 WriteINIStr "$PLUGINSDIR\portable-mode.ini" "Field 1" "Text" "${TITLE_StandardInstallation}" 0453 WriteINIStr "$PLUGINSDIR\portable-mode.ini" "Field 2" "Text" "${TITLE_PortableInstallation}" 0454 0455 InstallOptions::dialog $PLUGINSDIR\portable-mode.ini 0456 FunctionEnd 0457 0458 Function InstallationModeLeave 0459 ReadINIStr $0 "$PLUGINSDIR\portable-mode.ini" "Field 2" "State" 0460 0461 StrCmp $0 1 0 notchecked 0462 StrCpy $installAsPortable "YES" 0463 StrCpy $InstDir "$DESKTOP\${PRODUCT_NAME} Portable\" 0464 0465 goto skip 0466 0467 notchecked: 0468 StrCpy $installAsPortable "NO" 0469 0470 skip: 0471 FunctionEnd 0472 0473 Function installationInfoPage 0474 !insertmacro MUI_HEADER_TEXT "${TITLE_InstallInfo}" "${DESC_InstallInfo}" 0475 0476 StrCmp $installAsPortable "NO" 0 infoPortable 0477 WriteINIStr "$PLUGINSDIR\portable-info.ini" "Field 1" "Text" "${DESC_StandardInstallation}" 0478 0479 Goto showInfo 0480 0481 infoPortable: 0482 WriteINIStr "$PLUGINSDIR\portable-info.ini" "Field 1" "Text" "${DESC_PortableInstallation}" 0483 0484 showInfo: 0485 InstallOptions::dialog $PLUGINSDIR\portable-info.ini 0486 FunctionEnd 0487 0488 Function installationInfoLeave 0489 FunctionEnd 0490 0491 Function SkipComponentsIfPortableInstalltion 0492 StrCmp $installAsPortable "YES" 0 +2 0493 Abort 0494 FunctionEnd 0495 0496 Function notifyUserIfHotfixNeeded 0497 ; check if Windows 10 family. Taken from: http://nsis.sourceforge.net/Get_Windows_version 0498 ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentMajorVersionNumber 0499 StrCmp $R0 '' 0 skiphotfixwarn 0500 0501 ClearErrors 0502 nsExec::ExecToStack 'cmd /Q /C "%SYSTEMROOT%\System32\wbem\wmic.exe qfe get hotfixid | %SYSTEMROOT%\System32\findstr.exe "^KB2999226""' 0503 Pop $0 ; return value (it always 0 even if an error occured) 0504 Pop $1 ; command output KB2999226 0505 0506 StrCmp $1 "" 0 skiphotfixwarn 0507 MessageBox MB_YESNO|MB_ICONQUESTION "${MSG_HotfixNeeded}" IDNO +2 0508 ExecShell open "https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows" 0509 0510 skiphotfixwarn: 0511 FunctionEnd