现在在用installshield做个安装程序,设计了一个选择IIS站点的界面,只有一个下拉列表,一个按钮,下拉列表里面要列出现在本机上所有的IIS站点,然后点击 按钮 表示选择该站点,将要安装的程序安装到选中站点下的虚拟目录。 需求是这样子,但是现在不知道怎么绑定iis站点到下拉列表, 开始有点烦躁了

解决方案 »

  1.   

    绑定 列表已经搞定了,谁有写过获取所有iis站点,到一个LIST的InstallScript?
      

  2.   

    谁能帮忙写个 InstallScript 获取所有iis站点的脚本,,,发现他要根据站点序号来遍历搜索的, 而站点序号从1到 999999... 就不可能做到遍历了。看///////////////////////////////////////////////////////////////////////
    // InstallScript 设置 IIS 脚本
    // 主要功能:通过 ADSI 查找、创建、更改、删除站点,查找、创建、更改、删除虚拟目录
    // Description:    XiaoZhu.com InstallScript File for IIS Configuration
    // FileName:    xzIISConfig.Rul
    // Author:        piggybank
    // Contact:        [email protected]  
    //
    // Version:        1.01.15
    // Created:        2002.03.14.     VBS 的初始版本
    // Modified:    2004.10.19.     1.01.13
    // Modified:    2004.10.21        1.01.14 调整了.
    // Modified:    2004.10.22.        1.01.15 增加了两个函数用于设置站点和获取站点设置
    // 授权说明:    你可以不受任何限制地使用本脚本。
    //        你可以对它进行转载、修改、再发布,但必须保留注释说明完整性和来源。
    //
    //                 欢迎访问 http://www.XiaoZhu.com 获取最新版本。
    ///////////////////////////////////////////////////////////////////////
    //*********************************************************
    //** xzFindWebSite    指定三个条件至少一个,查询符合条件的站点,并返回序号
    //** @param szIPBind    要查询站点的 IP 地址,可以不指定
    //** @param szHost        要查询站点的主机头,可以不指定
    //** @param nzPort        要查询站点的端口,可以不指定,但至少必须指定一项    
    //** @return > 0 找到了指定的站点;
    //**            -1 没能找到站点;
    //**            -2 获取 W3SVC 失败;
    //**            -3 尝试访问本机 W3SVC 失败
    //*********************************************************
    function xzFindWebSite(szIPBind, szHost, nzPort)
        OBJECT objW3SVC, objWebSite;
        NUMBER nvSiteIndex; 
        STRING szPort, szInfo;
        STRING szServerBindings; 
        STRING oServerBindings();    begin
            szInfo = IFX_PRODUCT_NAME + " 安装程序正在查询 IIS 站点,请稍等 ..."; 
            SdShowMsg(szInfo, TRUE);
        
            try 
                NumToStr(szPort,nzPort);
                szServerBindings = szIPBind + ":" + szPort + ":" + szHost;
                set objW3SVC = CoGetObject("IIS://" + xzIISConfig_LocalComputerName + "/W3SVC", "");            if (IsObject(objW3SVC)) then
                    for nvSiteIndex = 1 to xzIISConfig_WebSiteCount_MaxValue
                        try
                            set objWebSite = objW3SVC.GetObject("IIsWebServer", nvSiteIndex); 
                            
                            if (IsObject(objWebSite)) then
                                oServerBindings = objWebSite.ServerBindings;
                                
                                if ( StrCompare(oServerBindings(0), szServerBindings) = 0 ) then
                                    set objWebSite = NOTHING;
                                    
                                    szInfo = IFX_PRODUCT_NAME + " 安装程序已经找到符合条件( " + szServerBindings + ")的 IIS 站点。"; 
                                    SdShowMsg("", FALSE);                                return nvSiteIndex; 
                                endif;
                            endif;                        nvSiteIndex = nvSiteIndex + 1;   
                        catch    
                        endcatch;
                    endfor;
        
                    set objW3SVC = NOTHING;
                                           
                    szInfo = IFX_PRODUCT_NAME + " 安装程序没有找到符合条件( " + szServerBindings + ")的 IIS 站点。"; 
                    nvSiteIndex = -1;
                else
                    nvSiteIndex = -2;
                    szInfo = IFX_PRODUCT_NAME + " 安装程序无法获得 IIS 设置。";
                endif;        catch
                szInfo = IFX_PRODUCT_NAME + " 安装程序查询 IIS 站点时出现错误。";
                nvSiteIndex = -3;
            endcatch;        if (nvSiteIndex < 0) then
                SdShowMsg(szInfo, TRUE);
                //MessageBox(szInfo, SEVERE);
            endif;
            
            SdShowMsg("", FALSE);
            return nvSiteIndex;
    end; 
    看这个例子,