我用Install shield 制作安装程序,我想让别人打开setup.exe就开始安装直到完成,不选择什么路径等等的,请问怎么做,我怎么搞都省略不了其中:欢迎... 下一步...等等!

解决方案 »

  1.   

    //===========================================================================
    //
    //  File Name:    Setup.rul
    //
    //  Description:  Blank setup main script file
    //
    //  Comments:     Blank setup is an empty setup project. If you want to
    //   create a new project via. step-by step instructions use the
    //   Project Assistant.
    //
    //===========================================================================// Included header files ----------------------------------------------------
    #include "ifx.h"
    //---------------------------------------------------------------------------                                                                        
    // OnFirstUIBefore
    //
    // First Install UI Sequence - Before Move Data
    //
    // The OnFirstUIBefore event is called by OnShowUI when the setup is
    // running in first install mode. By default this event displays UI allowing
    // the end user to specify installation parameters.
    //
    // Note: This event will not be called automatically in a
    // program...endprogram style setup.
    //---------------------------------------------------------------------------
    function OnFirstUIBefore()
        number  nResult, nLevel, nSize, nSetupType;
        string  szTitle, szMsg, szOpt1, szOpt2, szLicenseFile;
        string  szName, szCompany, szTargetPath, szDir, szFeatures;
        BOOL    bLicenseAccepted;
    begin
       
        nSetupType = COMPLETE;
        szDir = TARGETDIR;
        szName = "";
        szCompany = "";
        bLicenseAccepted = FALSE;// Beginning of UI Sequence
    Dlg_Start:
        nResult = 0;Dlg_SdWelcome:
        szTitle = "";
        szMsg = "";
        //{{IS_SCRIPT_TAG(Dlg_SdWelcome)
        nResult = SdWelcome( szTitle, szMsg );
        //}}IS_SCRIPT_TAG(Dlg_SdWelcome)
        if (nResult = BACK) goto Dlg_Start;Dlg_SdLicense2:
        szTitle = "";
        szOpt1 = "";
        szOpt2 = "";
        //{{IS_SCRIPT_TAG(License_File_Path)
        szLicenseFile = SUPPORTDIR ^ "License.rtf";
        //}}IS_SCRIPT_TAG(License_File_Path)
        //{{IS_SCRIPT_TAG(Dlg_SdLicense2)
       // nResult = SdLicense2Rtf( szTitle, szOpt1, szOpt2, szLicenseFile, bLicenseAccepted );
        //}}IS_SCRIPT_TAG(Dlg_SdLicense2)
        if (nResult = BACK) then
            goto Dlg_SdWelcome;
        else
            bLicenseAccepted = TRUE;
        endif;Dlg_SdRegisterUser:
        szMsg = "";
        szTitle = "";
        //{{IS_SCRIPT_TAG(Dlg_SdRegisterUser)
       // nResult = SdRegisterUser( szTitle, szMsg, szName, szCompany );
        //}}IS_SCRIPT_TAG(Dlg_SdRegisterUser)
        if (nResult = BACK) goto Dlg_SdLicense2;Dlg_SetupType2:   
        szTitle = "";
        szMsg = "";
        nResult = CUSTOM;
        //{{IS_SCRIPT_TAG(Dlg_SetupType2)
       // nResult = SetupType2( szTitle, szMsg, "", nSetupType, 0 );
        //}}IS_SCRIPT_TAG(Dlg_SetupType2)
        if (nResult = BACK) then
            goto Dlg_SdRegisterUser;
        else
            nSetupType = nResult;
            if (nSetupType != CUSTOM) then
                szTargetPath = TARGETDIR;
                nSize = 0;
                FeatureCompareSizeRequired( MEDIA, szTargetPath, nSize );
                if (nSize != 0) then      
                    MessageBox( szSdStr_NotEnoughSpace, WARNING );
                    goto Dlg_SetupType2;
                endif;
            endif;   
        endif;Dlg_SdAskDestPath2:
        if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SetupType2;
    szTitle = "";
        szMsg = "";
        if (nSetupType = CUSTOM) then
                    //{{IS_SCRIPT_TAG(Dlg_SdAskDestPath2)
    // nResult = SdAskDestPath2( szTitle, szMsg, szDir );
                    //}}IS_SCRIPT_TAG(Dlg_SdAskDestPath2)
            TARGETDIR = szDir;
        endif;
        if (nResult = BACK) goto Dlg_SetupType2;Dlg_SdFeatureTree: 
        if ((nResult = BACK) && (nSetupType != CUSTOM)) goto Dlg_SdAskDestPath2;
        szTitle = "";
        szMsg = "";
        szFeatures = "";
        nLevel = 2;
        if (nSetupType = CUSTOM) then
            //{{IS_SCRIPT_TAG(Dlg_SdFeatureTree)
           // nResult = SdFeatureTree( szTitle, szMsg, TARGETDIR, szFeatures, nLevel );
            //}}IS_SCRIPT_TAG(Dlg_SdFeatureTree)
            if (nResult = BACK) goto Dlg_SdAskDestPath2;  
        endif;Dlg_SQLServer:
        nResult = OnSQLServerInitialize( nResult );
        if( nResult = BACK ) goto Dlg_SdFeatureTree;Dlg_ObjDialogs:
        nResult = ShowObjWizardPages( nResult );
        if (nResult = BACK) goto Dlg_SQLServer;
        
    Dlg_SdStartCopy2:
        szTitle = "";
        szMsg = "";
        //{{IS_SCRIPT_TAG(Dlg_SdStartCopy2)
        nResult = SdStartCopy2( szTitle, szMsg );
        //}}IS_SCRIPT_TAG(Dlg_SdStartCopy2)
        if (nResult = BACK) goto Dlg_ObjDialogs;    // Added in 11.0 - Set appropriate StatusEx static text.
        SetStatusExStaticText( SdLoadString( IDS_IFX_STATUSEX_STATICTEXT_FIRSTUI ) );
     
        return 0;
    end;
      

  2.   

    對了,我用的是11.5版本,或是你就用Project Assitant共幾個步驟而已,幾步就搞定了,不用寫腳本
      

  3.   

    我用的是10.0版的,用Project Assitant完成也是还会出现欢迎对话框让单击下一步,我的意思是一打开就安装直到结束,怎么设置?
      

  4.   

    这个脚本往哪放阿,我是刚学着用Install shield 的,实在不太懂,请详细指点,谢谢!
      

  5.   

    看到:Dlg_SdWelcome:
        szTitle = "";
        szMsg = "";
        //{{IS_SCRIPT_TAG(Dlg_SdWelcome)
        nResult = SdWelcome( szTitle, szMsg );
        //}}IS_SCRIPT_TAG(Dlg_SdWelcome)
        if (nResult = BACK) goto Dlg_Start;沒有?注釋這一行:nResult = SdWelcome( szTitle, szMsg );就OK!
    至于腳本放哪兒?在Installation Designer->Behavior and Logic->InstallScript里
      

  6.   

    谢谢,我的MSN:[email protected]加我, thank you!