installshield|打包|自動安裝 #include "ifx.h" //不能移動
//////////////////////////////////////////////////////////////////////////////
// 用InstallShield 進行 ASP 軟體的打包和自動安裝
// 原創作者: 賈俊 (Jaron)
// 網址: http://www.jiangdu.net
// 郵件: jaron@jdinfo.net
// 首次發表於網易,ChinaASP,ASPHouse
//////////////////////////////////////////////////////////////////////////////
// 功能:
// 1.檔案複製
// 2.可選自動化佈建獨立站台運行(設定IIS)
// 3.可選自動化佈建虛擬網站運行(設定IIS)
// 4.設定目錄可讀,可寫及可運行指令碼
// 5.自動建立ODBC
// 6.自動建立或附加MDF格式的SQL資料庫 並最佳化
// 7.自動安裝 ScriptEncode 解碼程式
// 本文僅列出了 InstallShield 的 Script 部分,還有兩個 VBS 檔案及其他設定
// 測試過程中有任何問題,請來 http://www.jiangdu.net/bbs 編程空間版 討論
//////////////////////////////////////////////////////////////////////////////
prototype CreateDataBase(STRING,STRING,STRING);
prototype CreateWebSite(STRING,STRING); // 建立 IIS 網站
prototype CreateVirtualDir(STRING); // 建立虛擬目錄
//////////////////////////////////////////////////////////////////////////////
//
// 函數: OnFirstUIBefore
//
// 事件: FirstUIBefore event is sent when installation is run for the first
// time on given machine. In the handler installation usually displays
// UI allowing end user to specify installation parameters. After this
// function returns, ComponentTransferData is called to perform file
// transfer.
//
///////////////////////////////////////////////////////////////////////////////
function OnFirstUIBefore()
NUMBER nResult,nSetupType,nOpt,svEdit1,svEdit2;
STRING szTitle, szMsg,szBmpPath;
STRING szLicenseFile, szQuestion;
STRING szServerIP,szServerPort,szServerIPDefault,szServerPortDefault;
STRING szSQLsvr,szSQLusr,szSQLpwd,svSQLsvr,svSQLusr,svSQLpwd;
STRING svName, svCompany, svSerial;
STRING szFile,szTargetPath,szDir,szfolder;
STRING szComponents, szTargetdir;
STRING szField1,szField2;
STRING szDefault,svResult;
OBJECT piisObj;
LIST list,listStartCopy;
NUMBER nLevel,nvSize;
begin
szBmpPath="C:"^"temp"^"left.bmp";
DialogSetInfo (DLG_INFO_ALTIMAGE, szBmpPath, TRUE); // 設定左邊的圖片
//To Do: if you want to enable background, window title, and caption bar title
//SetTitle( @TITLE_MAIN, 24, WHITE );
//SetTitle( @TITLE_CAPTIONBAR, 0, BACKGROUNDCAPTION );
//Enable( FULLWINDOWMODE );
//Enable( BACKGROUND );
//SetColor(BACKGROUND,RGB (0, 128, 128));
//預設值設定
TARGETDIR = "C:"^"inetpub"^"JaronSoft"^@FOLDER_NAME;
szDir = TARGETDIR;
SHELL_OBJECT_FOLDER = @FOLDER_NAME;
svName = "試用版使用者";
svCompany = "JDinfo Network";
svSerial = "111-1111111";
Dlg_Start:
// beginning of dialogs label
Dlg_SdWelcome: //歡迎 對話方塊
szTitle = "歡迎進入";
szMsg = "";
nResult = SdWelcome( szTitle, szMsg );
if (nResult = BACK) goto Dlg_Start;
Dlg_SdLicense://軟體許可協議 對話方塊
szLicenseFile = SUPPORTDIR ^ "license.txt";
szTitle = "許可協議";
szMsg = "";
szQuestion = "";
nResult = SdLicense( szTitle, szMsg, szQuestion, szLicenseFile );
if (nResult = BACK) goto Dlg_SdWelcome;
Dlg_SdShowInfoList://readme檔案 對話方塊
szFile = SUPPORTDIR ^ "infolist.txt";
list = ListCreate( STRINGLIST );
ListReadFromFile( list, szFile );
szTitle = "README";
szMsg = "";
nResult = SdShowInfoList( szTitle, szMsg, list );
ListDestroy( list );
if (nResult = BACK) goto Dlg_SdLicense;
Dlg_SdRegisterUserEx://使用者資訊 對話方塊
szMsg = "";
szTitle = "使用者資訊";
nResult = SdRegisterUserEx( szTitle, szMsg, svName, svCompany, svSerial );
if (nResult = BACK) goto Dlg_SdShowInfoList;
//檢查序號
//if (CHK_serial(svCompany, svSerial)<0) then
//goto Dlg_SdRegisterUserEx;
//endif;
//檢查序號完畢
Dlg_SdAskDestPath://安裝位置 對話方塊
szTitle = "檢查序號";
szMsg = "";
nResult = SdAskDestPath( szTitle, szMsg, szDir, 0 );
TARGETDIR = szDir;
if (nResult = BACK) goto Dlg_SdRegisterUserEx;
Dlg_SetupType: //安裝類型 對話方塊
nSetupType = TYPICAL;
szTitle = "安裝類型";
szMsg = "請選擇您需要按哪種方式安裝";
nResult = SetupType ( szTitle , szMsg , "" , nSetupType , 0 );
if (nResult = BACK) then
goto Dlg_SdAskDestPath;
else
nSetupType = nResult;
if (nSetupType != CUSTOM) then
szTargetPath = TARGETDIR;
nvSize = 0;
ComponentCompareSizeRequir