⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bochs.nsi

📁 bochs
💻 NSI
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $Id: bochs.nsi.in,v 1.5.2.1 2003/01/06 03:29:02 bdenney Exp $;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Setup Script for NSIS Installer;; Created: Michael Rich (istan);; Based on Example Script by Joost Verburg; also original BOCHS script by Robert (segra); !define VERSION 2.0.2!define NAME "Bochs ${VERSION}"!verbose 3!include "WinMessages.nsh"!include "ModernUI.nsh"!verbose 4!define CURRENTPAGE $9!define TEMP1 $R0!define TEMP2 $R1!define SRCDIR bochs-${VERSION}!define PGDIR "$SMPROGRAMS\Bochs ${VERSION}"!define DESKTOP_DLXLINK "$DESKTOP\Linux Demo in ${NAME}.lnk";--------------------------------  ;General  Name "${NAME}"  OutFile Bochs-${VERSION}.exe  SetOverwrite on  ;User interface  !insertmacro MUI_INTERFACE "modern2.exe" "bochs.ico" "bochs.ico" "modern.bmp" "smooth"  ;License dialog  LicenseText "Scroll down to see the rest of the agreement."  LicenseData ${SRCDIR}\COPYING.txt  ;Component-select dialog  ComponentText "Check the components you want to install and uncheck the components you don't want to install. Click Next to continue."  ; Installation Types  InstType "Normal"  InstType "Full (with DLX Linux demo)"  ;Folder-select dialog  InstallDir $PROGRAMFILES\Bochs-${VERSION}  DirText "Setup will install ${NAME} in the following folder.$\r$\n$\r$\nTo install in this folder, click Install. To install in a different folder, click Browse and select another folder." " "  ;Uninstaller  UninstallText "This will uninstall ${NAME} from your system.";--------------------------------;Installer SectionsSection "Bochs Program (required)" SecCore  SectionIn 1 2 RO  SetOutPath "$INSTDIR"  File "${SRCDIR}\*.exe"  File "${SRCDIR}\*.txt"  File "*.ico"  ; Install keymaps  SetOutPath "$INSTDIR\keymaps"  File "${SRCDIR}\keymaps\*"SectionEndSection "ROM Images (required)" SecROMs  SectionIn 1 2 RO  SetOutPath "$INSTDIR"  File "${SRCDIR}\BIOS-*"  File "${SRCDIR}\VGABIOS-*"SectionEndSection "Documentation in HTML" SecDocs  SectionIn 1 2   SetOutPath "$INSTDIR\docs"  File "${SRCDIR}\docs\index.html"  SetOutPath "$INSTDIR\docs\user"  File "${SRCDIR}\docs\user\*"  SetOutPath "$INSTDIR\docs\development"  File "${SRCDIR}\docs\development\*"  SetOutPath "$INSTDIR\docs\documentation"  File "${SRCDIR}\docs\documentation\*"  SetOutPath "$INSTDIR\docs\images"  File "${SRCDIR}\docs\images\*"SectionEndSection "DLX Linux Demo" SecDLX  SectionIn 2  SetOutPath "$INSTDIR\dlxlinux"  File "${SRCDIR}\dlxlinux\*"  ; Fix up the path to the Bochs executable  FileOpen $1 "$INSTDIR\dlxlinux\run.bat" w  FileWrite $1 'cd "$INSTDIR\dlxlinux"$\r$\n'  FileWrite $1 "..\bochs -q -f bochsrc.bxrc$\r$\n"  FileClose $1SectionEndSection "Add Bochs to the Start Menu and Desktop" SecIcons  SectionIn 1 2    ; Set the Program Group as output to ensure it exists  SetOutPath "${PGDIR}"  ; Change the output back to the install folder so the "Start In" paths get set properly  SetOutPath "$INSTDIR"  CreateShortCut "${PGDIR}\${NAME}.lnk" "$INSTDIR\Bochs.exe" "" "$INSTDIR\bochs.ico" "0"  CreateShortCut "${PGDIR}\Readme.lnk" \                 "$INSTDIR\Readme.txt"  CreateShortCut "${PGDIR}\Bochs Sample Setup.lnk" \                 "$INSTDIR\bochsrc-sample.txt"  CreateShortCut "${PGDIR}\Disk Image Creation Tool.lnk" \                 "$INSTDIR\bximage.exe"  CreateShortCut "${PGDIR}\NIC Lister.lnk" \                 "$INSTDIR\niclist.exe"  WriteINIStr "${PGDIR}\Help.url" \	      "InternetShortcut" "URL" "file://$INSTDIR/docs/index.html"  WriteINIStr "${PGDIR}\Home Page.url" \	      "InternetShortcut" "URL" "http://bochs.sourceforge.net/"  CreateShortCut "${PGDIR}\${NAME} Folder.lnk" \                 "$INSTDIR"  CreateShortCut "${PGDIR}\Uninstall Bochs.lnk" \                 "$INSTDIR\Uninstall.exe"  ; Create shortcut to DLX Linux if it was installed  IfFileExists "$INSTDIR\dlxlinux\*" 0 no	CreateShortCut "${PGDIR}\DLX Linux.lnk" "$INSTDIR\dlxlinux\run.bat" "" "$INSTDIR\penguin.ico" "0"  ; Add a link to the DLX demo to the desktop  CreateShortCut "${DESKTOP_DLXLINK}" "$INSTDIR\dlxlinux\run.bat" "" "$INSTDIR\bochs.ico" "0"no:SectionEndSection "Register .bxrc Extension" SecExtension  SectionIn 1 2 RO    ; back up old value of .bxrc  ReadRegStr $1 HKCR ".bxrc" ""  StrCmp $1 "" Label1    StrCmp $1 "BochsConfigFile" Label1    WriteRegStr HKCR ".bxrc" "backup_val" $1  Label1:  WriteRegStr HKCR ".bxrc" "" "BochsConfigFile"  WriteRegStr HKCR "BochsConfigFile" "" "${NAME} Config File"  WriteRegStr HKCR "BochsConfigFile\DefaultIcon" "" "$INSTDIR\bochs.ico,0"  WriteRegStr HKCR "BochsConfigFile\shell" "" "Configure"  WriteRegStr HKCR "BochsConfigFile\shell\Configure\command" "" '"$INSTDIR\Bochs.exe" -f "%1"'  WriteRegStr HKCR "BochsConfigFile\shell" "" "Edit"  WriteRegStr HKCR "BochsConfigFile\shell\Edit\command" "" 'C:\WINDOWS\NOTEPAD.EXE "%1"'  WriteRegStr HKCR "BochsConfigFile\shell" "" "Debugger"  WriteRegStr HKCR "BochsConfigFile\shell\Debugger\command" "" '"$INSTDIR\Bochsdbg.exe" -f "%1"'  WriteRegStr HKCR "BochsConfigFile\shell" "" "Run"  WriteRegStr HKCR "BochsConfigFile\shell\Run\command" "" '"$INSTDIR\Bochs.exe" -q -f "%1"'SectionEndSection ""  ;Invisible section to display the Finish header  !insertmacro MUI_FINISHHEADER SetHeader  SectionEndSection -post  ; Register Uninstaller  WriteRegStr HKLM "SOFTWARE\${NAME}" "" $INSTDIR  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayName" "${NAME} (remove only)"  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "DisplayIcon" "$INSTDIR\bochs.ico,0"  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "UninstallString" '"$INSTDIR\Uninstall.exe"'  ; Write the uninstaller  WriteUninstaller "$INSTDIR\Uninstall.exe"SectionEnd;--------------------------------;Installer FunctionsFunction .onInitDialog  !insertmacro MUI_INNERDIALOG_INIT    !insertmacro MUI_INNERDIALOG_START 1      !insertmacro MUI_INNERDIALOG_TEXT 1033 1040 "If you accept all the terms of the agreement, choose I Agree to continue. If you choose Cancel, Setup will close. You must accept the agreement to install ${NAME}."    !insertmacro MUI_INNERDIALOG_STOP 1    !insertmacro MUI_INNERDIALOG_START 2      !insertmacro MUI_INNERDIALOG_TEXT 1033 1042 "Description"      !insertmacro MUI_INNERDIALOG_TEXT 1033 1043 "Hover your mouse over a component to see it's description."    !insertmacro MUI_INNERDIALOG_STOP 2    !insertmacro MUI_INNERDIALOG_START 3      !insertmacro MUI_INNERDIALOG_TEXT 1033 1041 "Destination Folder"      !insertmacro MUI_INNERDIALOG_STOP 3  !insertmacro MUI_INNERDIALOG_ENDFunctionEndFunction .onNextPage  !insertmacro MUI_NEXTPAGE_OUTER  !insertmacro MUI_NEXTPAGE SetHeader  FunctionEndFunction .onPrevPage  !insertmacro MUI_PREVPAGEFunctionEndFunction SetHeader  !insertmacro MUI_HEADER_INIT    !insertmacro MUI_HEADER_START 1       !insertmacro MUI_HEADER_TEXT 1033 "License Agreement" "Please review the license terms before installing ${NAME}."    !insertmacro MUI_HEADER_STOP 1    !insertmacro MUI_HEADER_START 2      !insertmacro MUI_HEADER_TEXT 1033 "Choose Components" "Choose the components you want to install."    !insertmacro MUI_HEADER_STOP 2    !insertmacro MUI_HEADER_START 3      !insertmacro MUI_HEADER_TEXT 1033 "Choose Install Location" "Choose the folder in which to install ${NAME} in."    !insertmacro MUI_HEADER_STOP 3    !insertmacro MUI_HEADER_START 4      !insertmacro MUI_HEADER_TEXT 1033 "Installing" "Please wait while ${NAME} is being installed."    !insertmacro MUI_HEADER_STOP 4    !insertmacro MUI_HEADER_START 5      !insertmacro MUI_HEADER_TEXT 1033 "Finished" "Setup was completed successfully."    !insertmacro MUI_HEADER_STOP 5  !insertmacro MUI_HEADER_ENDFunctionEndFunction .onMouseOverSection  !insertmacro MUI_DESCRIPTION_INIT    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecCore} "Installs the core ${NAME} applications."    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecROMs} "BIOS and Video ROMs required by ${NAME}."    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecDLX} "An image of DLX Linux with a batch file for quickly loading it."    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecDocs} "Documentation for configuring and running ${NAME}."    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecIcons} "Installs icons and program menu items for quickly running ${NAME}."    !insertmacro MUI_DESCRIPTION_TEXT 1033 ${SecExtension} "Adds the ability to double-click a .bxrc file and start ${NAME} immediately." !insertmacro MUI_DESCRIPTION_ENDFunctionEndFunction .onUserAbort  !insertmacro MUI_ABORTWARNING 1033 "Are you sure you want to quit ${NAME} Setup?"  !insertmacro MUI_ABORTWARNING_END  FunctionEndFunction .onInstSuccess  MessageBox MB_YESNO|MB_ICONQUESTION \	     "Would you like to see a list of changes?" \	     IDNO NoChanges		ExecShell open '$INSTDIR\CHANGES.TXT'  NoChanges:  MessageBox MB_YESNO|MB_ICONQUESTION \             "Setup has completed. Read readme now?" \             IDNO NoReadme    ExecShell open '$INSTDIR\readme.txt'  NoReadme:  DetailPrint "Thank you for installing Bochs, think inside the bochs."FunctionEnd;--------------------------------;Uninstaller SectionSection "Uninstall"  ReadRegStr $1 HKCR ".bxrc" ""  StrCmp $1 "BochsConfigFile" 0 NoOwn ; only do this if we own it    ReadRegStr $1 HKCR ".bxrc" "backup_val"    StrCmp $1 "" 0 RestoreBackup ; if backup == "" then delete the whole key      DeleteRegKey HKCR ".bxrc"    Goto NoOwn    RestoreBackup:      WriteRegStr HKCR ".bxrc" "" $1      DeleteRegValue HKCR ".bxrc" "backup_val"  NoOwn:  DeleteRegKey HKCR "BochsConfigFile"  DeleteRegKey HKLM "SOFTWARE\${NAME}"  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}"  Delete "${PGDIR}\*.lnk"  Delete "${PGDIR}\*.url"  RMDir "${PGDIR}"  Delete "${DESKTOP_DLXLINK}"  Delete "$INSTDIR\*.exe"  Delete "$INSTDIR\*.txt"  Delete "$INSTDIR\*.ico"  Delete "$INSTDIR\keymaps\*"  Delete "$INSTDIR\BIOS-*"  Delete "$INSTDIR\VGABIOS-*"  Delete "$INSTDIR\dlxlinux\*"  Delete "$INSTDIR\docs\index.html"  Delete "$INSTDIR\docs\user\*"  Delete "$INSTDIR\docs\development\*"  Delete "$INSTDIR\docs\documentation\*"  Delete "$INSTDIR\docs\images\*"  RMDIR "$INSTDIR\keymaps"  RMDIR "$INSTDIR\dlxlinux"  RMDIR "$INSTDIR\docs\user"  RMDIR "$INSTDIR\docs\development"  RMDIR "$INSTDIR\docs\documentation"  RMDIR "$INSTDIR\docs\images"  RMDIR "$INSTDIR\docs"  RMDIR "$INSTDIR"  !insertmacro MUI_FINISHHEADER un.SetHeader SectionEnd;--------------------------------;Uninstaller FunctionsFunction un.onNextPage  !insertmacro MUI_NEXTPAGE_OUTER  !insertmacro MUI_NEXTPAGE un.SetHeader  FunctionEndFunction un.SetHeader  !insertmacro MUI_HEADER_INIT    !insertmacro MUI_HEADER_START 1      !insertmacro MUI_HEADER_TEXT 1033 "Uninstall ${NAME}" "Remove ${NAME} from your system."    !insertmacro MUI_HEADER_STOP 1    !insertmacro MUI_HEADER_START 2      !insertmacro MUI_HEADER_TEXT 1033 "Uninstalling" "Please wait while ${NAME} is being uninstalled."    !insertmacro MUI_HEADER_STOP 2    !insertmacro MUI_HEADER_START 3      !insertmacro MUI_HEADER_TEXT 1033 "Finished" "${NAME} has been removed from your system."    !insertmacro MUI_HEADER_STOP 3  !insertmacro MUI_HEADER_ENDFunctionEnd;eof

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -