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

📄 bochs.nsi.in

📁 Bochs这个虚拟机的源代码。学习虚拟机的编写和操作系统的编写有帮助。
💻 IN
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; $Id: bochs.nsi.in,v 1.8 2004/01/01 23:05:45 cbothamy Exp $
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; Setup Script for NSIS Installer
;
; Created: Michael Rich (istan)
;
; Based on Example Script by Joost Verburg
; also original BOCHS script by Robert (segra)
; 
;---------------------
;Include Modern UI

  !include "MUI.nsh"

;--------------------------------

!define VERSION @VERSION@
!define NAME "Bochs ${VERSION}"


!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}"
  Icon "bochs.ico"
  OutFile Bochs-${VERSION}.exe
  SetOverwrite on

  ;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 Sections

Section "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\*"

SectionEnd

Section "ROM Images (required)" SecROMs
  SectionIn 1 2 RO

  SetOutPath "$INSTDIR"

  File "${SRCDIR}\BIOS-*"
  File "${SRCDIR}\VGABIOS-*"
SectionEnd

Section "Documentation in HTML" SecDocs
  SectionIn 1 2 
  SetOutPath "$INSTDIR\docs"
  File "${SRCDIR}\share\doc\bochs\index.html"
  SetOutPath "$INSTDIR\docs\user"
  File "${SRCDIR}\share\doc\bochs\user\*"
  SetOutPath "$INSTDIR\docs\development"
  File "${SRCDIR}\share\doc\bochs\development\*"
  SetOutPath "$INSTDIR\docs\documentation"
  File "${SRCDIR}\share\doc\bochs\documentation\*"
  SetOutPath "$INSTDIR\docs\images"
  File "${SRCDIR}\share\doc\bochs\images\*"
SectionEnd

Section "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 $1
SectionEnd

Section "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:


SectionEnd

Section "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"'
SectionEnd


Section -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 Functions

Function .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 Section

Section "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"

SectionEnd

;eof

⌨️ 快捷键说明

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