FirebirdSQL/問答篇/安裝程式的腳本製作
出自VFP Wiki
FirebirdSQL/問答篇/安裝程式的腳本製作
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
=== 製作安裝程式的注意事項 === *安裝前 ** 請將正在執行的Firebird或Interbase,停止運作. *安裝 *#下載Firebird ZIP檔案.並且解壓縮檔案 *#切換目錄到Firebird\bin *#註冊Firebird程式所在目錄: instreg.exe install (這樣它會向系統註冊.HKLM\Software\Firebird Project\Firebird Server\Instances) *#將Firebird當作服務來執行時:instsvc.exe install *#將兩各檔案"fbclient.dll" 及 "gds32.dll"拷貝到系統目錄(WinDir\System32), *反安裝 *#停止FirebirdSQL Server *#執行指令 "instsvc.exe remove" *#執行指令 "instreg.exe remove" *#刪除安裝目錄 *#在系統目錄(WinDir\System32),刪除兩各檔案 "fbclient.dll" 及 "gds32.dll" === Firebird&ODBC安裝腳本--NSIS版本 === <code> ; By Ruey rueyho@ms11.hinet.net ; Script generated by the HM NIS Edit Script Wizard. ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "FirebirdSQL" !define PRODUCT_VERSION "1.5.0" !define PRODUCT_PUBLISHER "Firebird Project" !define PRODUCT_WEB_SITE "http://wiki.sunyear.com.tw/index.php?page=FirebirdSQL" !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\FirebirdSQL\bin\fbguard.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_SRC_DIR "" !define PRODUCT_Firebird_DIR "D:\firebird\FirebirdSQL" !define PRODUCT_ODBC_DIR "D:\firebird\ODBC_DLL" ; MUI 1.67 compatible ------ !include "MUI.nsh" ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "D:\Firebird\FirebirdSQL\Firebird.ico" !define MUI_UNICON "D:\Firebird\FirebirdSQL\Firebird.ico" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; License page !insertmacro MUI_PAGE_LICENSE "${PRODUCT_Firebird_DIR}\讀我.txt" ; Components page !insertmacro MUI_PAGE_COMPONENTS ; Directory page !insertmacro MUI_PAGE_DIRECTORY ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page ;!define MUI_FINISHPAGE_RUN "$INSTDIR\bin\fbguard.exe -a" ;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Example.file" ;!insertmacro MUI_PAGE_FINISH ; Uninstaller pages !insertmacro MUI_UNPAGE_INSTFILES ; Language files !insertmacro MUI_LANGUAGE "TradChinese" ; MUI end ------ ;-------------------------------- Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "Firebird_Setup.exe" ;InstallDir "$PROGRAMFILES\FirebirdSQL" InstallDir "C:\fb15" InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" "" ShowInstDetails show ShowUnInstDetails show InstType "單機版" InstType "網路Server版" InstType "網路Client版" InstType /NOCUSTOM Section "Firebird Server" SEC01 SetOutPath "$INSTDIR" SetOverwrite on File /r "${PRODUCT_Firebird_DIR}\*.*" ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instreg.exe' 'install ' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instsvc.exe' 'install -auto -superserver -guardian -z' SW_SHOWMINIMIZED ;ExecShell open '$INSTDIR\bin\instsvc.exe' 'start' SW_SHOWMINIMIZED SectionIn 1 2 SectionEnd Section "Firebird Client" SEC02 SetOutPath "$INSTDIR" SetOverwrite on ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED SectionIn 1 3 SectionEnd Section "Firebird ODBC" SEC03 SetOutPath "$SYSDIR" SetOverwrite on File "${PRODUCT_ODBC_DIR}\IscDbc.dll" File "${PRODUCT_ODBC_DIR}\OdbcJdbc.dll" File "${PRODUCT_ODBC_DIR}\OdbcJdbcSetup.dll" ;ExecShell open '$SYSDIR\regsvr32.exe ' '$SYSDIR\OdbcJdbcSetup.dll' SW_SHOWMINIMIZED ;SetOutPath "$INSTDIR" RegDLL "$INSTDIR\ODBC\OdbcJdbcSetup.dll" SectionIn 1 2 3 SectionEnd Section -AdditionalIcons WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}" CreateDirectory "$SMPROGRAMS\FirebirdSQL" CreateShortCut "$SMPROGRAMS\FirebirdSQL\Website.lnk" "$INSTDIR\${PRODUCT_NAME}.url" CreateShortCut "$SMPROGRAMS\FirebirdSQL\Uninstall.lnk" "$INSTDIR\uninst.exe" CreateShortCut "$SMPROGRAMS\FirebirdSQL\fbguard.lnk" "$INSTDIR\bin\fbguard.exe" "-a" SectionEnd Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\fbguard.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\bin\fbguard.exe" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}" WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" SectionEnd ; Section descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "FirebirdSQL DataBase Server" !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "FierbirdSQL Client" !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Firebird ODBC" !insertmacro MUI_FUNCTION_DESCRIPTION_END ;======================================================= ;安裝前的動作 ;======================================================= Function .onInit ExecShell open '$INSTDIR\bin\instsvc.exe' 'stop' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instsvc.exe' 'remove -z' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instreg.exe' 'remove -z' SW_SHOWMINIMIZED FunctionEnd ;======================================================= ;安裝後的動作 ;======================================================= Function .onInstSuccess ;ExecShell open '$INSTDIR\bin\instclient.exe' 'install fbclient' SW_SHOWMINIMIZED ;ExecShell open '$INSTDIR\bin\instclient.exe' 'install gds32' SW_SHOWMINIMIZED ;ExecShell open '$INSTDIR\bin\instreg.exe' 'install ' SW_SHOWMINIMIZED ;ExecShell open '$INSTDIR\bin\instsvc.exe' 'install -auto -superserver -guardian -z' SW_SHOWMINIMIZED ExecShell open '$INSTDIR\bin\instsvc.exe' 'start' SW_SHOWMINIMIZED ;ExecShell open 'c:\fb15\bin\fbguard.exe -a' ;Exec 'c:\fb15\bin\fbguard.exe -a' ;Exec 'c:\fb15\bin\instsvc start' ;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioA.ini" ;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "ioB.ini" ;!insertmacro MUI_INSTALLOPTIONS_EXTRACT "test.ini" FunctionEnd ;======================================================= ;反安裝後的動作 ;======================================================= Function un.onUninstSuccess HideWindow MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) 已成功地從你的電腦移除。" FunctionEnd ;======================================================= ;反安裝前的動作 ;======================================================= Function un.onInit MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "你確定要完全移除 $(^Name) ,其及所有的元件?" IDYES +2 Abort FunctionEnd ;======================================================= ;反安裝的動作 ;======================================================= Section Uninstall ;Firebird反安裝 ExecShell open 'net ' 'stop "firebird guardian"' ExecShell open '$INSTDIR\bin\instsvc.exe' 'stop' ExecShell open '$INSTDIR\bin\instsvc.exe' 'remove -z' ExecShell open '$INSTDIR\bin\instreg.exe' 'remove -z' Delete "$INSTDIR\${PRODUCT_NAME}.url" Delete "$INSTDIR\uninst.exe" ;Delete "$INSTDIR\Example.file" ;Delete "$INSTDIR\AppMainExe.exe" ;ODBC反安裝 UnRegDLL "$INSTDIR\ODBC\OdbcJdbcSetup.dll" ;SetOutPath "$SYSDIR" ;ExecShell open 'regsvr32.exe' '/u .\OdbcJdbcSetup.dll' SW_SHOWMINIMIZED Delete "$SYSDIR\OdbcJdbcSetup.dll" Delete "$SYSDIR\OdbcJdbc.dll" Delete "$SYSDIR\IscDbc.dll" RMDir /r "$INSTDIR" ;程式集--反安裝 Delete "$SMPROGRAMS\FirebirdSQL\Uninstall.lnk" Delete "$SMPROGRAMS\FirebirdSQL\Website.lnk" RMDir "$SMPROGRAMS\FirebirdSQL" RMDir /r "$SMPROGRAMS\FirebirdSQL" ;RMDir "$INSTDIR" ;註冊碼移除 DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}" SetAutoClose true SectionEnd </code> === Firebird 安裝腳本--Inno Setup === <code> ; Initial Developer's Public License. ; The contents of this file are subject to the Initial Developer's Public ; License Version 1.0 (the "License"). You may not use this file except ; in compliance with the License. You may obtain a copy of the License at ; http://www.ibphoenix.com/idpl.html ; Software distributed under the License is distributed on an "AS IS" basis, ; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License ; for the specific language governing rights and limitations under the ; License. ; ; The Original Code is copyright 2001-2003 Paul Reeves for IBPhoenix. ; ; The Initial Developer of the Original Code is Paul Reeves for IBPhoenix. ; ; All Rights Reserved. ; ; Contributor(s): ; Tilo Muetze, Theo ? and Michael Rimov for improved detection ; of an existing install directory. ; Simon Carter for the WinSock2 detection. ; Usage Notes: ; ; This script has been designed to work with My InnoSetup Extensions 3.0.6.2 ; or later. It may work with earlier versions but this is neither guaranteed ; nor tested. My InnoSetup Extensions is available from ; http://www.wintax.nl/isx/ ; ;Either classic_server_install or super_server_install ;Default to SuperServer if not defined #define super_server_install #define server_architecture "SuperServer" #define msvc_version 6 #define FirebirdURL "http://www.firebirdsql.org" #define BaseVer "1_5" [Setup] AppName=Firebird Database Server 1.5 ({#server_architecture}) ;The following is important - all ISS install packages should ;duplicate this for v1.5. See the InnoSetup help for details. AppID=FBDBServer_{#BaseVer} AppVerName=Firebird 1.5.0 {#server_architecture} AppPublisher=Firebird Project AppPublisherURL={#FirebirdURL} AppSupportURL={#FirebirdURL} AppUpdatesURL={#FirebirdURL} DefaultDirName={code:InstallDir|{pf}\Firebird\Firebird_{#BaseVer}} DefaultGroupName=Firebird_{#BaseVer} AllowNoIcons=true SourceDir=..\..\..\..\..\firebird2 LicenseFile=src\install\misc\IPLicense.txt InfoBeforeFile=src\install\arch-specific\win32\installation_readme.txt InfoAfterFile=src\install\arch-specific\win32\readme.txt AlwaysShowComponentsList=true WizardImageFile=src\install\arch-specific\win32\firebird_install_logo1.bmp PrivilegesRequired=admin #ifdef classic_server_install UninstallDisplayIcon={app}\bin\fb_inet_server.exe #else UninstallDisplayIcon={app}\bin\fbserver.exe #endif OutputDir=builds\win32\install_image OutputBaseFilename=Firebird-1.5.0-Win32-{#server_architecture} Compression=bzip [Types] Name: ServerInstall; Description: Full installation of server and development tools. Name: DeveloperInstall; Description: Installation of Client tools for Developers and database administrators. Name: ClientInstall; Description: Minimum client install - no server, no tools. [Components] Name: ServerComponent; Description: Server component; Types: ServerInstall Name: DevAdminComponent; Description: Tools component; Types: ServerInstall DeveloperInstall Name: ClientComponent; Description: Client component; Types: ServerInstall DeveloperInstall ClientInstall; Flags: fixed disablenouninstallwarning [Tasks] ;Server tasks Name: UseGuardianTask; Description: "Use the &Guardian to control the server?"; Components: ServerComponent; MinVersion: 4.0,4.0 Name: UseApplicationTask; Description: An &Application?; GroupDescription: "Run Firebird server as:"; Components: ServerComponent; MinVersion: 4,4; Flags: exclusive Name: UseServiceTask; Description: A &Service?; GroupDescription: "Run Firebird server as:"; Components: ServerComponent; MinVersion: 0,4; Flags: exclusive Name: AutoStartTask; Description: "Start &Firebird automatically everytime you boot up?"; Components: ServerComponent; MinVersion: 4,4; ;Developer Tasks Name: MenuGroupTask; Description: Create a Menu &Group; Components: ServerComponent; MinVersion: 4,4; ;One for Ron ;Name: MenuGroupTask\desktopicon; Description: Create a &desktop icon; Components: ServerComponent; MinVersion: 4.0,4.0; [Run] ;Always register Firebird Filename: "{app}\bin\instreg.exe"; Parameters: "install ""{app}"" "; StatusMsg: Updating the registry; MinVersion: 4.0,4.0; Components: ClientComponent; Flags: runminimized ;If on NT/Win2k etc and 'Install and start service' requested Filename: "{app}\bin\instsvc.exe"; Parameters: "install ""{app}"" {code:ServiceStartFlags|""""} "; StatusMsg: "Setting up the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; Filename: "{app}\bin\instsvc.exe"; Description: "Start Firebird Service now?"; Parameters: start; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized postinstall; Tasks: UseServiceTask; Check: StartEngine; ;If 'start as application' requested #ifdef classic_server_install Filename: "{code:StartApp|{app}\bin\fb_inet_server.exe}"; Description: "Start Firebird now?"; Parameters: "-a"; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: nowait postinstall; Tasks: UseApplicationTask; Check: StartEngine; #else Filename: "{code:StartApp|{app}\bin\fbserver.exe}"; Description: "Start Firebird now?"; Parameters: "-a"; StatusMsg: Starting the server; MinVersion: 0,4.0; Components: ServerComponent; Flags: nowait postinstall; Tasks: UseApplicationTask; Check: StartEngine; #endif [Registry] ;If user has chosen to start as App they may well want to start automatically. That is handled by a function below. ;Unless we set a marker here the uninstall will leave some annoying debris. Root: HKLM; Subkey: SOFTWARE\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: Firebird; ValueData: ""; Flags: uninsdeletevalue; Tasks: UseApplicationTask; ;This doesn't seem to get cleared automatically by instreg on uninstall, so lets make sure of it Root: HKLM; Subkey: SOFTWARE\FirebirdSQL; Flags: uninsdeletekeyifempty; Components: ClientComponent DevAdminComponent ServerComponent; [Icons] #ifdef classic_server_install Name: "{group}\Firebird Server"; Filename: {app}\bin\fb_inet_server.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallServerIcon; IconIndex: 0; Comment: "Run Firebird classic server (without guardian)"; #else Name: "{group}\Firebird Server"; Filename: {app}\bin\fbserver.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallServerIcon; IconIndex: 0; Comment: "Run Firebird Superserver (without guardian)"; #endif Name: "{group}\Firebird Guardian"; Filename: {app}\bin\fbguard.exe; Parameters: "-a"; Flags: runminimized; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Check: InstallGuardianIcon; IconIndex: 1; Comment: "Run Firebird server (with guardian)"; Name: "{group}\Firebird 1.5 Release Notes"; Filename: {app}\doc\Firebird_v1_ReleaseNotes.pdf; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; IconIndex: 1; Comment: "Firebird 1.0 release notes. (Requires Acrobat Reader.)"; Name: "{group}\Firebird 1.5 Readme"; Filename: {app}\readme.txt; MinVersion: 4.0,4.0; Tasks: MenuGroupTask; Name: "{group}\Uninstall Firebird"; Filename: {uninstallexe}; Comment: "Uninstall Firebird" [Files] Source: src\install\misc\IPLicense.txt; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: src\install\arch-specific\win32\readme.txt; DestDir: {app}; Components: DevAdminComponent; Flags: ignoreversion; Source: output\firebird.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\aliases.conf; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\security.fdb; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall onlyifdoesntexist; Source: output\security.fbk; DestDir: {app}; Components: ServerComponent; Flags: ignoreversion; Source: output\firebird.log; DestDir: {app}; Components: ServerComponent; Flags: uninsneveruninstall skipifsourcedoesntexist external dontcopy; Source: output\firebird.msg; DestDir: {app}; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: output\bin\gbak.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gbak.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gdef.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gfix.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gfix.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gpre.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\gsec.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\gsec.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: sharedfile ignoreversion; Source: output\bin\gsplit.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: sharedfile ignoreversion; Source: output\bin\gstat.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\fbguard.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\fb_lock_print.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; #ifdef classic_server_install Source: output\bin\fb_inet_server.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; #else Source: output\bin\fbserver.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; #endif Source: output\bin\ib_util.dll; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\instreg.exe; DestDir: {app}\bin; Components: ClientComponent; Flags: sharedfile ignoreversion; Source: output\bin\instsvc.exe; DestDir: {app}\bin; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\bin\isql.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\bin\qli.exe; DestDir: {app}\bin; Components: DevAdminComponent; Flags: ignoreversion; Source: output\doc\*.*; DestDir: {app}\doc; Components: DevAdminComponent; Flags: skipifsourcedoesntexist ignoreversion; Source: output\doc\sql.extensions\*.*; DestDir: {app}\doc\sql.extensions; Components: DevAdminComponent; Flags: skipifsourcedoesntexist ignoreversion; Source: output\help\*.*; DestDir: {app}\help; Components: DevAdminComponent; Flags: ignoreversion; Source: output\include\*.*; DestDir: {app}\include; Components: DevAdminComponent; Flags: ignoreversion; Source: output\intl\fbintl.dll; DestDir: {app}\intl; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\lib\*.*; DestDir: {app}\lib; Components: DevAdminComponent; Flags: ignoreversion; Source: output\UDF\*.*; DestDir: {app}\UDF; Components: ServerComponent; Flags: sharedfile ignoreversion; Source: output\examples\*.*; DestDir: {app}\examples; Components: DevAdminComponent; Flags: ignoreversion; ;For now (RC2 timeframe) we are not recommending co-existence with other versions of Firebird or InterBase ;so we can install the client library and its wrapper into {sys} ;Source: output\bin\gds32.dll; DestDir: {app}\bin; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; ;Source: output\bin\fbclient.dll; DestDir: {app}\bin; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; Source: output\bin\gds32.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; Source: output\bin\fbclient.dll; DestDir: {sys}\; Components: ClientComponent; Flags: overwritereadonly sharedfile promptifolder; Source: src\install\arch-specific\win32\msvcrt.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; Source: src\install\arch-specific\win32\msvcp{#msvc_version}0.dll; DestDir: {sys}\; Components: ClientComponent; Flags: uninsneveruninstall sharedfile onlyifdoesntexist; Source: src\extlib\fbudf\fbudf.sql; DestDir: {app}\examples; Components: ServerComponent; Flags: ignoreversion; Source: src\extlib\fbudf\fbudf.txt; DestDir: {app}\doc; Components: ServerComponent; Flags: ignoreversion; Source: src\extlib\ib_util.pas; DestDir: {app}\include; Components: DevAdminComponent; Flags: ignoreversion; ;Source: firebird\install\doc_all_platforms\Firebird_v1_ReleaseNotes.pdf; DestDir: {app}\doc; Components: DevAdminComponent; Flags: ignoreversion; ;Source: firebird\install\doc_all_platforms\Firebird_v1_*.html; DestDir: {app}\doc; Components: DevAdminComponent; Flags: ignoreversion; [UninstallRun] Filename: {app}\bin\instsvc.exe; Parameters: stop; StatusMsg: "Stopping the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; check: RemoveThisVersion; Filename: {app}\bin\instsvc.exe; Parameters: remove -g; StatusMsg: "Removing the service"; MinVersion: 0,4.0; Components: ServerComponent; Flags: runminimized; Tasks: UseServiceTask; check: RemoveThisVersion; Filename: {app}\bin\instreg.exe; Parameters: remove; StatusMsg: "Updating the registry"; MinVersion: 4.0,4.0; Flags: runminimized; check: RemoveThisVersion; [UninstallDelete] Type: files; Name: {app}\*.lck Type: files; Name: {app}\*.evn [_ISTool] EnableISX=true [Code] program Setup; const sWinSock2 = 'ws2_32.dll'; sNoWinsock2 = 'Please Install Winsock 2 Update before continuing'; sMSWinsock2Update = 'http://www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp'; sWinsock2Web = 'Winsock 2 is not installed.'#13#13'Would you like to Visit the Winsock 2 Update Home Page?'; ProductVersion = 'PRODUCT_VER_STRING'; var Winsock2Failure: Boolean; InterBaseVer: Array of Integer; // Likely values for installed versions of InterBase are: // [6,2,0,nnn] Firebird 1.0.0 // [6,2,2,nnn] Firebird 1.0.2 // [6,0,n,n] InterBase 6.0 // [6,5,n,n] InterBase 6.5 // [7,0,n,n] InterBase 7.0 FirebirdVer: Array of Integer; // Likely values for installed versions of Firebird are: // [6,2,0,nnn] Firebird 1.0.0 // [6,2,2,nnn] Firebird 1.0.2 // [6,2,3,nnn] Firebird 1.0.3 // [1,5,0,nnnn] Firebird 1.5.0 fbclientStartCount, gds32StartCount : Integer; procedure GetSharedLibCountAtStart; var dw: Cardinal; begin if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw) then fbclientStartCount := dw else fbclientStartCount := 0; if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw) then gds32StartCount := dw else gds32StartCount := 0; end; procedure SetSharedLibCountAtEnd; // gds32 and fbclient get registered twice as shared libraries. // This appears to be a bug in InnoSetup. It only appears to affect // libraries the first time they are registered, and it only seems // to affect stuff in the {sys} directory. To work around this we // check the count before install and after install. var dw: cardinal; begin if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw) then begin if (( dw - fbclientStartCount ) > 1 ) then begin dw := fbclientStartCount + 1 ; RegWriteDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\fbclient.dll', dw); end; end; if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw) then begin if (( dw - gds32StartCount ) > 1 ) then begin dw := gds32StartCount + 1 ; RegWriteDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs','C:\WINNT\System32\gds32.dll', dw); end; end; end; function CheckWinsock2(): Boolean; begin Result := True; //Check if Winsock 2 is installed (win 95 only) if (not UsingWinNt) and (not FileExists(AddBackslash(GetSystemDir) + sWinSock2)) then begin Winsock2Failure := True; Result := False; end else Winsock2Failure := False; end; function InitializeSetup(): Boolean; var i: Integer; begin result := true; if not CheckWinsock2 then exit; //Look for a running version of Firebird i:=FindWindowByClassName('FB_Disabled'); if ( i=0 ) then i:=FindWindowByClassName('FB_Server'); if ( i<>0 ) then begin result := false; MsgBox('An existing Firebird Server is running. You must close the '+ 'application or stop the service before continuing.', mbError, MB_OK); end; //Check the shared library count. if ( result=true ) then GetSharedLibCountAtStart; end; procedure DeInitializeSetup(); var ErrCode: Integer; begin // Did the install fail because winsock 2 was not installed? if Winsock2Failure then // Ask user if they want to visit the Winsock2 update web page. if MsgBox(sWinsock2Web, mbInformation, MB_YESNO) = idYes then // User wants to visit the web page InstShellExec(sMSWinsock2Update, '', '', SW_SHOWNORMAL, ErrCode); end; procedure DecodeVersion( verstr: String; var verint: array of Integer ); var i,p: Integer; s: string; begin verint := [0,0,0,0]; i := 0; while ( (Length(verstr) > 0) and (i < 4) ) do begin p := pos('.', verstr); if p > 0 then begin if p = 1 then s:= '0' else s:= Copy( verstr, 1, p - 1 ); verint[i] := StrToInt(s); i := i + 1; verstr := Copy( verstr, p+1, Length(verstr)); end else begin verint[i] := StrToInt( verstr ); verstr := ''; end; end; end; function GetInstalledVersion(ADir: String): Array of Integer; var AString: String; VerInt: Array of Integer; begin if (ADir<>'') then begin GetVersionNumbersString( ADir+'\bin\gbak.exe', Astring); DecodeVersion(AString, VerInt); end; result := VerInt; end; function GetFirebirdDir: string; //Check if Firebird installed, get version info to global var and return root dir var FirebirdDir: String; begin FirebirdVer := [0,0,0,0]; RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\FirebirdSQL\Firebird\CurrentVersion','RootDirectory', FirebirdDir); if (FirebirdDir<>'') then FirebirdVer:=GetInstalledVersion(FirebirdDir); end; function GetInterBaseDir: string; //Check if InterBase installed, get version info to global var and return root dir var InterBaseDir: String; begin InterBaseVer := [0,0,0,0]; RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Borland\InterBase\CurrentVersion','RootDirectory', InterBaseDir); if (InterBaseDir<>'') then InterBaseVer:=GetInstalledVersion(InterBaseDir); end; //This function tries to find an existing install of Firebird 1.5 //If it succeeds it suggests that directory for the install //Otherwise it suggests the default for Fb 1.5 function InstallDir(Default: String): String; var InstallRootDir, InterBaseRootDir, FirebirdRootDir: String; begin InstallRootDir := ''; // Try to find the value of "RootDirectory" in the Firebird // registry settings. This is either where Fb 1.0 exists or Fb 1.5 InterBaseRootDir:=GetInterBaseDir; FirebirdRootDir:=GetFirebirdDir; if (FirebirdRootDir <> '') and ( FirebirdRootDir = InterBaseRootDir ) then //Fb 1.0 must be installed so don't overwrite it. InstallRootDir := Default; if (( InstallRootDir = '' ) and ( FirebirdRootDir = Default )) then // Fb 1.5 is already installed, InstallRootDir := Default; // so we offer to install over it if (( InstallRootDir = '') and ( FirebirdVer[0] = 1 ) and ( FirebirdVer[1] = 5 ) ) then // Firebird 1.5 is installed InstallRootDir := FirebirdRootDir; // but the user has changed the default // if we haven't found anything then try the FIREBIRD env var // User may have preferred location for Firebird, but has possibly // uninstalled previous version if (InstallRootDir = '') then InstallRootDir:=getenv('FIREBIRD'); //if no existing locations found make sure we default to the default. if (InstallRootDir = '') then InstallRootDir := Default; Result := ExpandConstant(InstallRootDir); end; function UseGuardian(Default: String): String; begin if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then Result := '1' else Result := '0'; end; function ServiceStartFlags(Default: String): String; var classic: String; begin classic := ''; #ifdef classic_server_install classic := ' -classic'; #endif Result := ''; if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then begin if ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes then Result := ' -auto ' + classic + ' -g ' else Result := classic + ' -g '; end else if ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes then Result := ' -auto '; end; function InstallGuardianIcon(): Boolean; begin result := false; if ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes then if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then result := true; end; function InstallServerIcon(): Boolean; begin result := false; if ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes then if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srNo then result := true; end; function StartApp(Default: String): String; var AppPath: String; begin AppPath:=ExpandConstant('{app}'); //Now start the app as if ShouldProcessEntry('ServerComponent', 'UseGuardianTask')= srYes then Result := AppPath+'\bin\fbguard.exe' else #ifdef classic_server_install Result := AppPath+'\bin\fb_inet_server.exe'; #else Result := AppPath+'\bin\fbserver.exe'; #endif end; procedure CurStepChanged(CurStep: Integer); var AppStr: String; begin if ( CurStep=csFinished ) then begin //If user has chosen to install an app and run it automatically set up the registry accordingly //so that the server or guardian starts evertime they login. if (ShouldProcessEntry('ServerComponent', 'AutoStartTask')= srYes) and ( ShouldProcessEntry('ServerComponent', 'UseApplicationTask')= srYes ) then begin AppStr := StartApp('')+' -a'; RegWriteStringValue (HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 'Firebird', AppStr); end; end; if ( CurStep=csFinished ) then //Check that the shared lib count is correct. SetSharedLibCountAtEnd; end; function FirebirdOneRunning: boolean; var i: Integer; begin result := false; //Look for a running copy of InterBase or Firebird 1.0. i:=0; i:=FindWindowByClassName('IB_Server') ; if ( i<>0 ) then result := true; end; function StartEngine: boolean; begin result := not FirebirdOneRunning; end; function RemoveThisVersion: boolean; //check if we are still the current version before removing var VersionStr: string; begin result := false; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\FirebirdSQL\Firebird\CurrentVersion','Version', VersionStr ) then if (pos(ProductVersion,VersionStr)>0) then result := true; end; begin end. </code> === Firebird ODBC安裝腳本--Inno Setup === <code> ; ; The contents of this file are subject to the Initial ; Developer's Public License Version 1.0 (the "License"); ; you may not use this file except in compliance with the ; License. You may obtain a copy of the License at ; http://www.ibphoenix.com/idpl.html. ; ; Software distributed under the License is distributed on ; an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either ; express or implied. See the License for the specific ; language governing rights and limitations under the License. ; ; ; The Original Code was created by Vladimir Tsvigun for IBPhoenix. ; ; Copyright (c) 2003 Vladimir Tsvigun ; All Rights Reserved. ; ; OdbcJdbcSetup.iss ; ; for Inno Setup ver: 3.0.6.2 from http://www.innosetup.com/ ; for MsVC 6.0 #define sourceDll="..\..\Builds\MsVc60.win\Release\" [Setup] AppName=Firebird ODBC AppVerName=OdbcJdbc version 1-1-beta WizardImageFile=firebird-logo1.bmp WizardImageBackColor=clWhite WizardSmallImageFile=firebird-logo2.bmp WizardSmallImageBackColor=clWhite DefaultDirName={pf}\Firebird ODBC DefaultGroupName=Firebird ODBC UninstallDisplayIcon={app}\OdbcJdbcSetup.dll [Files] Source: "{#sourceDll}IscDbc.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall Source: "{#sourceDll}OdbcJdbc.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall Source: "{#sourceDll}OdbcJdbcSetup.dll"; DestDir: "{app}"; Flags: ignoreversion deleteafterinstall ;Source: "FirebirdOdbc.hlp"; DestDir: "{app}" Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme [Icons] Name: "{group}\Firebird ODBC"; Filename: "{app}\unins000.exe" [Run] Filename: "{sys}\regsvr32.exe"; Parameters: "/s ""{app}""\OdbcJdbcSetup.dll" [UninstallRun] Filename: "{sys}\regsvr32.exe"; Parameters: "/u ""{app}""\OdbcJdbcSetup.dll" </code> === InterBase7安裝腳本--以Inno Setup為例 === <code> ;原作者lleey lleey@163.com ; 這是由《My Inno Setup Extensions》程序建立的腳本向導程序. ; 有關怎樣建立此腳本的方法請參考幫助以及D:\Inno Setup 2\BDEInst\中的readme文件 ; 編寫本腳本所用到的知識(如為什么要復制那些文件、目的是什么,為什么要對注冊表文件進行那樣的修改等)請參考有關文獻。 ; 如有疑問請來信共同探討。lleey@163.com ; 愿此腳本對所有志同道合者的學習、開發有所幫助,共同推動IB應用! [Setup] AppName=《飛行學院航空理論試題庫系統》 AppVerName=Exam2003 AppPublisher=空軍第十三飛行學院理論訓練處 DefaultDirName={pf}\Exam DefaultGroupName=Exam OutputBaseFilename=ExamSetup Uninstallable=yes ; 如果要在NT 3.51以上版本上運行安裝程序則變下面的注釋行變為運行行即可 ; MinVersion=4,3.51 [Types] ;設置若干個安裝主題,供用戶根據不同目的選擇安裝 Name: "ExamBase"; Description: "安裝服務器和題庫" Name: "Exam"; Description: "安裝組卷子系統" Name: "MakeBase"; Description: "安裝建庫子系統" Name: "Custom"; Description: "用戶自由選擇安裝"; Flags: iscustom [Components] ;本節列出待安裝的所有組件。如果[Type]節中的一個安裝主題需要某個組件,就在此組件對應的Types:保留字后面列出此主題名 Name: IB7clt; Description: 客戶機數據庫系統; Types: ExamBase Exam MakeBase Custom; Flags: fixed Name: IB7svr; Description: 服務器數據庫系統; Types: ExamBase Custom Name: Base; Description: 題庫; Types: ExamBase Custom Name: Maketable; Description: 建庫子系統; Types: MakeBase Custom Name: Exam; Description: 組卷子系統; Types: Exam Custom [Dirs] ;設置安裝目錄。其中數據庫系統包括服務器和客戶機均放在C:\windows\system\interbase7文件夾下、而數據庫則放在應用程序存放 ;目錄的\base子文件夾下。 Name: {sys}\InterBase7 Name: {sys}\InterBase7\bin; Name: {app}\base; Components:Base [Tasks] Name: "desktopicon"; Description: "創建一個桌面圖標(&D) "; GroupDescription: "添加圖標: "; MinVersion: 4,4; Components: MakeTable exam [Files] ;========================================================== ;復制數據庫系統。對于任何用到IB7的應用此部分都是一樣的。 || ;========================================================== ;復制IB7的系統數據庫admin.ib,僅當該文件不存在時復制、卸載時不刪除、只適用于IB7svr組件。以下不再贅述。 Source: E:\Borland\InterBase7\admin.ib; DestDir: {sys}\InterBase7; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall; Components: IB7svr Source: E:\Borland\InterBase7\ibconfig; DestDir: {sys}\InterBase7; CopyMode: normal; Components: IB7svr Source: E:\Borland\InterBase7\interbase.msg; DestDir: {sys}\InterBase7; CopyMode: normal; Flags: sharedfile; Components: IB7clt ;將設置3050耑口的文件復制到臨時目錄。 Source: E:\Borland\InterBase7\Set3050.exe; DestDir: {tmp}; Flags: deleteafterinstall Source: E:\Borland\InterBase7\bin\ibguard.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; Components: IB7svr; Flags: sharedfile Source: E:\Borland\InterBase7\bin\ibserver.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; Components: IB7svr; Flags: sharedfile Source: E:\Borland\InterBase7\bin\instreg.exe; DestDir: {sys}\InterBase7\bin; Components: IB7clt Source: C:\Windows\System\gds32.dll; DestDir: {sys}; CopyMode: alwaysskipifsameorolder; Flags: sharedfile; Components: IB7clt Source: C:\Windows\System\msvcrt.dll; DestDir: {sys}; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall sharedfile; Components: IB7clt ;復制許可証 Source: "E:\Borland\InterBase7\ib_license.dat"; DestDir: "{sys}\InterBase7"; CopyMode: normal; Components: IB7svr ; 在Win9x/Me系統下復制服務器中止服務器文件 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Source: E:\Borland\InterBase7\bin\stopsrv.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; MinVersion: 4.0,0; Components: IB7svr ; 在NT/2000系統下復制將IB7設置為NT服務的文件 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Source: E:\Borland\InterBase7\bin\instsvc.exe; DestDir: {sys}\InterBase7\bin; CopyMode: alwaysskipifsameorolder; MinVersion: 0,4.0; Components: IB7svr ;================================================================================================== ;復制組卷子系統。以上是關于數據庫系統的復制,以下是應用程序的復制,各用戶可自由決定下面的復制內容|| ;================================================================================================== Source: "E:\Exam\bintest\exam.exe"; DestDir: "{app}"; DestName: "exam.exe"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\exam.ini"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\ExamHor.dot"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\ExamVer.dot"; DestDir: "{app}"; CopyMode: normal; Components: Exam Source: "E:\Exam\bintest\config.ini"; DestDir: "{app}"; CopyMode: normal; Components: Exam Maketable ;復制建庫子系統 Source: "E:\Exam\Maketable\Maketable.exe"; DestDir: "{app}"; CopyMode: normal; Components: Maketable Source: "E:\exam\PrtTable\PrtTable.exe"; DestDir: "{app}"; CopyMode: normal; Components: Maketable ;復制題庫 Source: "E:\exam\Base\Exam.ib"; DestDir: "{app}\base"; CopyMode: normal; Components: Base [Registry] ;==================================================== ;此部分是對注冊表的修改,具體內容可參考相關文檔說明|| ;==================================================== ; 僅對Win9x/Me ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Root: HKLM; Subkey: Software\Microsoft\Windows\CurrentVersion\Run; ValueType: string; ValueName: InterBaseGuardian; ValueData: {app}\bin\ibguard.exe; MinVersion: 4.0,0; Flags: uninsdeletevalue; Components: IB7svr ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;此行是設置IB7的版本號,務必是真實的版本號,否則會造成其他安裝程序的錯誤判斷 Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: Version; ValueData: WI-V7.0.1.1; Flags: uninsdeletevalue; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: ServerDirectory; ValueData: {sys}\InterBase7\bin; Flags: uninsdeletevalue; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; Flags: uninsdeletekeyifempty; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase; Flags: uninsdeletekeyifempty; Components: IB7svr ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 為向下兼容 ;Root: HKLM; Subkey: Software\Borland\InterBase; ValueType: DWord; ValueName: UseCount; ValueData: {reg:HKLM\Software\Borland\InterBase, UseCount|0} + 1 ;Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: DWord; ValueName: UseCount; ValueData: {reg:HKLM\Software\Borland\InterBase\CurrentVersion, UseCount|0} + 1 ; obsolete - Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: DefaultMode; ValueData: -r; Components: Server Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: GuardianOptions; ValueData: 1; Components: IB7svr Root: HKLM; Subkey: Software\Borland\InterBase\CurrentVersion; ValueType: string; ValueName: ServerDirectory; ValueData: {sys}\InterBase7\bin\; Components: IB7svr ; Software\Borland\InterBase\CurrentVersion\RootDirectory ; & ; Software\Borland\InterBase\CurrentVersion\Version ; 的鍵值由instreg.exe文件自行設置,此文件還將刪除Software\Borland\InterBase鍵名下的空鍵名 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [Icons] Name: "{group}\組卷"; Filename: "{app}\exam.exe"; Components: Exam Name: "{group}\建庫"; Filename: "{app}\maketable.exe"; Components: Maketable Name: "{group}\打印題庫"; Filename: "{app}\prttable.exe"; Components: Maketable Name: "{userdesktop}\組卷"; Filename: "{app}\exam.exe"; Components: Exam Name: "{userdesktop}\建庫"; Filename: "{app}\maketable.exe"; Components: Maketable Name: "{userdesktop}\打印題庫"; Filename: "{app}\prttable.exe"; Components: Maketable Name: "{group}\卸載"; Filename: "{app}\unins000.exe" [Run] ;在結束安裝之前運行此節所規定的內容 ;================================== ;運行臨時文件夾中的Set3050.exe,目的是設置3050口,此口是IB7所默認的通信監視口 Filename: {tmp}\Set3050.exe; Flags: runminimized ;運行instreg.exe,目的是對一些特殊的注冊表內容進行設置。 Filename: {sys}\InterBase7\bin\instreg.exe; Parameters: "install ""{sys}\InterBase7"""; Flags: nowait runminimized ; 只對NT/2000,目的是將IB7服務器設置成NT eservice(NT服務);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Filename: {sys}\InterBase7\bin\instsvc.exe; Parameters: install {sys}\InterBase7 -auto -z; Flags: runminimized; MinVersion: 0,4.0; Components: IB7svr Filename: {sys}\InterBase7\bin\instsvc.exe; Parameters: start; Flags: nowait runminimized; MinVersion: 0,4.0; Components: IB7svr ; 只對Win9x/Me ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Filename: {sys}\InterBase7\bin\ibguard.exe; Flags: nowait; MinVersion: 4.0,0; Components: IB7svr ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; </code> === 相關網站 === #[http://nsis.sourceforge.net/home/ NSIS Home] #[http://tt.superdown.com/down/nsis20.exe NSIS download1] #[http://down2.superdown.com/down/nsis20.exe NSIS download2] #[http://hmne.sourceforge.net/ HM NIS EDIT: A Free NSIS Editor/IDE] === 參考文章 === #[http://omega.idv.tw/kdb120/viewthread.php?threadid=1367&page=1#post4075 編寫 NSIS 的安裝腳本] By ∮Ω奧米加空間∮ dc #[http://leoboard.cpatch.org/cgi-bin/topic.cgi?forum=4&topic=151&show=0 NSIS: 結構化的LangString 寫作] By 中文化聯盟 Kii Ali #[http://dash.945.cn/article.php/36 全方位掌握 NSIS 的使用] By 少昊 teach.hanzify.org #[http://www.ypsolog.com/docs/comp/windows/nsis.html Quick Guide to NSIS] #[http://vfp.sunyear.com.tw/viewtopic.php?p=3697#3697 安裝程式--Inno Setup] #[http://www.alanti.net/firebird/inst/index.html Unofficial Firebird Installation page] #[http://ibinstall.defined.net/download/BorCon%202001%20-%201138.htm#Introduction InterBase Installation & Deployment Options] #[http://ibinstall.defined.net/dl_scripts.htm InterBase Installation Info Script Downloads]
返回到
FirebirdSQL/問答篇/安裝程式的腳本製作
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面