InstallShield自定义对话框浅谈(二)

原创 2004年02月07日 22:59:00

二、 根据输入控制对话框上控件的有效性
在自定义了一个对话框之后,可能需要对对话框上的控件之间的关系进行一些控制,比如当选中了某单选框后,使一些控件有效,而选中其他的单选框后,另一些控件有效等等。要实现这些功能,就需要手动编写InstallShield脚本来实现了。
下面是一个在安装向导中添加了一个自定义对话框,在该步骤中实现在安装的时候在本机器上添加一个SQL Server的数据源。图“自定义对话框效果图”是该自定义对话框的运行效果图:
 

在该自定义对话框中,除了要完成配置SQL Server的数据源之外,还要完成其他一些辅助功能。为了在本机器上配置一个SQL Server数据源,需要输入该数据源的名称、该数据源是针对那个服务器的以及配置的是用户数据源还是系统数据源等数据,而数据库和服务器用户及口令则是完成辅助功能所需要的。只有当输入了必须的数据(如:服务器、数据库、用户名称、数据源等)之后,按钮“下一步”才能有效,为了达到这个要求,就需要对用户的输入进行判断,在InstallShield中可以用WaitOnDialog来得到当前对话框的事件。下面是完成该功能的一个完整脚本代码:

///////////////////////////////////////////////////////////////////////
// kdcis.rul
//
///////////////////////////////////////////////////////////////////////

#ifndef __KDCIS_RUL_
#define __KDCIS_RUL_

#include "winsysdll.h"
 //
 // Pre-defined script dialog constants
 //   

             // ----- Attribute Dialog Controls ------
#define DLG_DSN_SQLSERVER    30001

#define IDC_RADIO_DSN_USER    1001
#define IDC_RADIO_DSN_SYSTEM   1002
#define IDC_EDIT_DB_ADDR                1003
#define IDC_EDIT_SQLSERVER_USER_NAME 1004
#define IDC_EDIT_SQLSERVER_USER_PWD 1005
#define IDC_EDIT_SQLSERVER_DSN   1006
#define IDC_EDIT_SQLSERVER_DB   1007

        file://----------------------
        // Function prototypes
        file://----------------------


///////////////////////////////////////////////////////////////
// 显示配置SQLSERVER数据源对话框
// 参数:
//    BOOL bFirstStep:是安装的第一步吗?
//    BOOL bAllowNotSet:是否允许跳过本次设置
//    BYVAL STRING szTitle:对话框的标题
///////////////////////////////////////////////////////////////
prototype BuildSQLServerDSN(BOOL, BOOL, BYVAL STRING);


///////////////////////////////////////////////////////////////
// 校验配置数据源对话框的输入有效性
// 参数:
//    HWND hwndDlg:配置对话框的句柄,从CmdGetHwndDlg中得到
//    BOOL bAllowNotSet:是否允许跳过本次设置
// 备注:
//    CheckSQLServerDSNInputValid:对SQLSERVER数据源配置进行校验
//////////////////////////////////////////////////////////////
prototype CheckSQLServerDSNInputValid(HWND, BOOL);
      
        file://----------------------
        // Variable declaration
        file://---------------------- 
       
        file://----------------------
        // Macro declaration
        file://----------------------
#define DSN_SQLSERVER_DLG "ConfigSQLServerDSNDLG"

InstallShield自定义对话框以及问题

前言:由于项目需要,而Installshield中的界面没有我们想要的,就需要定制一套了,也在网上看了很多资料,现在项目做的差不多了,总结一下 网上有很多Installshield高手的文章,都可以参...
  • hustypf
  • hustypf
  • 2013年09月30日 16:23
  • 6501

InstallShield创建自定义对话框 实例(转)

1.在Dialogs视图中,右键All Dialog,选择新建对话框(New Dialog) 2.创建一个空白对话框,命名为MyDlg. 3.双击MyDlg下的子项即可进入对话框的编辑模式 4....
  • dragoo1
  • dragoo1
  • 2015年03月30日 21:50
  • 1517

InstallShield自定义对话框浅谈(转)

说明:本文档的InstallShield为6.22版本,语言:中文。操作系统为Windows2000。资源编辑工具:Microsoft Visual C ++ 6.0。修改的DLL:_isuer.d...
  • dragoo1
  • dragoo1
  • 2015年05月02日 14:57
  • 2624

InstallShield使用---安装设计界面

InstallShield使用---安装设计界面
  • eickandy
  • eickandy
  • 2015年11月03日 11:07
  • 1175

InstallShield-用户界面函数(原创+转载)

这两天遇到一个InstallShield卸载的问题,不同的计算机上有不同的现象,就是在卸载的时候,当前产品的注册表项所在的目录(还有其他产品的注册表项),都被删除了,正确的做法应该是只删除当前产品的注...
  • hustypf
  • hustypf
  • 2013年07月26日 16:03
  • 3466

一个完整的Installshield安装程序实例

一个完整的Installshield安装程序实例—艾泽拉斯之海洋女神出品(一)---基本设置一 前言 Installshield可以说是最好的做安装程序的商业软件之一,不过因为功能的太过于...
  • duanbeibei
  • duanbeibei
  • 2015年12月16日 22:06
  • 30290

InstallShield 2013 应用笔记(一)

背景因项目需要,将最终交付的应用打包成安装程序。在VS2010之前版本,所有安装包制作,我都使用VS自带的安装程序。在VS2010后,因对VS的安装程序维护成本过高,依赖的VBScript脚本语言,因...
  • black0707
  • black0707
  • 2015年05月14日 15:05
  • 1360

IOS之自定义对话框

IOS之自定义对话框 由于通过继承UIAlterView来实现自定义对话框的方法在IOS7.0系统中不能再实现,通过查找相关资料寻找到一个相对比较简单而且有效的方法来替代之前的方法。接下来我们将学习...
  • luzhiyong01
  • luzhiyong01
  • 2013年12月23日 16:18
  • 2866

InstallShield使用介绍之一:InstallShield的工程类型的选择

熟悉InstallShield用户清楚有Basic MSI,InstallScript和InstallScript MSI三种工程类型可选择,如果你初次使用InstallShield,你可能面临一个问...
  • wuxiaoqrs
  • wuxiaoqrs
  • 2015年05月14日 10:49
  • 594

InstallShield安装包在Win7下权限问题的解决方案

众所周知,win7下的权限问题很让人头疼,最近在用InstallShield给AliProbe打包的时候,同样在win7下遇到了问题。主要的限制是:在安装目录下不能创建文件以及执行任何的写操作。这个问...
  • educast
  • educast
  • 2014年12月01日 12:47
  • 4016
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:InstallShield自定义对话框浅谈(二)
举报原因:
原因补充:

(最多只允许输入30个字)