InstallShield脚本语言的编写
Installshield终极使用教程

Installshield终极使⽤教程Installshield使⽤1 说明(适⽤范围)1.1IS各⼯程介绍IS将安装⼯程根据⼯程的特点分了⼏⼤类:InstallScript ;Windows Installer;Universal installer。
其中,Universal这个⽐较好理解,⼤概就是⽤来做跨平台的安装程序。
InstallScript 和Windows Installer的区别,我到是⼀直不是很清楚,⼤概意思就是如果你使⽤InstallScript模式是使⽤脚本来驱动安装界⾯,使⽤Windows Installer则主要是使⽤操作系统⾃带的安装服务来驱动安装。
在每个⼤类⾥⾯有划分了不同的⼩类。
这⾥请参考IS帮助中的说明。
2 COMMON篇之InstallScript Porject2.1使⽤向导做⼀个简单的安装包2.1.1了解你要安装的程序⾸先你要清楚,你的程序所需要的运⾏环境要求。
这个安装包例⼦中,我们要打包这样⼀个系统:主程序是LearnQClient.exe,rtcdll.dll,ImageOle.dll,dxmrtp.dll,dsoframer.ocx,config.ini,许可协议.txt;它运⾏时需要读取当前⽬录下的config.ini,由于这个程序是⽤VC开发的,所以还需要运⾏的机器上有vc的运⾏库。
具备了这个环境,LearnQClient.exe程序才能正常运⾏起来。
这就要求我们做好的安装程序安装时要将LearnQClient.exe,rtcdll.dll,ImageOle.dll, dxmrtp.dll,dsoframer.ocx,config.ini拷贝到指定的安装⽬录,也可将ImageOle.dll,dsoframer.ocx拷贝到当前系统的系统⽬录(windows9x中系统⽬录是windows/system;windows 2000/xp的系统⽬录是system32)。
InstallShield X简单使用实例介绍

InstallShield X 之一演变作为专业的安装程序制作软件,InstallShield占据了Windows商业程序安装包制作软件大部分市场,经过十几年的发展,InstallShield专注于安装程序制作(installation-authoring solution)领域从分到合的走进了InstallShield X这个大一统的阶段。
如同新经济的发展历程,各种新行业、新公司如雨后春笋的冒出来,在经济不景气时大家又纷纷开始合并、收购。
相信过不了多久,又会开始分拆、成立新公司,这就是经济的规律。
另:2004年6月16日Macrovision以7600万美元的现金收购位于InstallShield 软件公司的资产和业务。
呵呵,谁知道哪一天Oracle能收购PeopleSoft,MS能收购SAP?没有什么不可能。
03年之前,InstallShield Windows 安装方面主要分为Professional和Developer两个产品,相对于前者,Developer针对开发人员设计,所支持的功能更多一些。
除此之外,还有简易版的InstallShield Express,软件管理与分发的InstallShield AdminStudio,针对Java程序安装的跨平台产品InstallShield MultiPlatform 和演示的DemoShield。
03年,InstallShield将Professional和Developer合二为一推出了DevStudio 9 ,DevStudio 的功能更加强大,对于Dotnet的支持更完善,我们使用的安装项目无法解决的多个问题(如.Net Framework的检查和安装、各种MDAC2.7 等组件的检查与安装)均可以通过DevStudio 简单的完成。
各位DotNet的程序员可以通过DevStudio 制作WebFrom和WinForm的专业级的安装程序了。
Installshield2008制作安装包详解(结合实际项目办法

欢迎阅读Installshield2008制作安装包 (基于EPA安装包制作项目)第一部分:基本设置1. 打开Installshield 2008 Premier Edition,新建一个Installscript Project,它是一个全脚本类型程序,就是用脚本来驱动安装界面。
选择类型为InstallerScript | InstallScript Projcet,输入工程名,指定工程所在的文件夹。
2.界面会切换到Project Assistant,从这里开始把工程的基本组件和基本文件建立好,不过一般在Installation Designer里进行设置。
3.在Project Assistant界面的底部,会有一个引导动作条,在建立该工程的基本结构和文件时,可以在此界面进行操作。
4.点击界面上的Installation Designer,进入安装设计界面1.Installation Information文件夹主要是设置该安装包的基本信息,用户只要设置General Information 里的信息,其它两个不用设置。
主要是设置此安装包项目的名称,运行的操作系统和一些基本信息。
anization文件夹主要是进行安装设置,包括安装中要用到的文件,安装文件的执行顺序以及安装类型的设置(自定义安装和完全安装)。
Setup Design主要是用来添加安装过程中所需的文件和快捷方式的设置,快捷方式设置包括开始菜单中的快捷方式和桌面快捷方式的设置。
还可以把文件的安装和脚本中函数的执行关联起来。
Features主要是查看各装置的配置信息,Components主要是查看各组件的配置信息,这两个都是方便用户查看一些设置的基本信息。
Setup Types用来设置用户在自定义安装和完全安装时要安装的组件。
3.Application Data 文件夹主要是提供用户查看计算机中的应用程序和文件,方便用户来选择其中的文件来制作安装包。
InstallShield教程

使用本文使用的InstallShiled的版本是InstallShiled 2008 Premier Edition,只介绍制作Base MSI Preject及InstallScript MSI Preject安装包。
1菜单大多数菜单与其他软件一样,这里只介绍几个有特点的。
1.1Go可以通过此菜单到任意一个设计界面中。
1.2Project1.1.1[Perform Static Scan…]及[Perform Dynamic Scan…]静态及动态搜索应用程序所需要的系统对象及Dll运行库,这两个功能有详细的向导,这里不再做介绍。
1.1.2[Source Control]此功能为源代码管理,必须结合Microsoft的Microsoft Visual SourceSafe。
1.3Tools1.3.1[InstallScript]Standard Dialog Sampler及Skinned Dialog Sampler查看固定的安装步骤界面,以便在脚本中调用。
Cabinet File Viewer查看安装包CAB文件的内容,经测试好像不能查看InstallShield2008制作的CAB的内容。
2安装设计界面这里介绍的是Installation Designer页面的界面(介绍一些重要的属性)。
2.1Installation Information2.1.1General Information¾Project PropertiesSetup Languages:设置安装包的语言种类,一般默认的是简体中文。
¾Add or Remove ProgramsDisplay Icon:在系统中的添加或删除程序的列表中显示的图标;Display Icon Index:图标文件的图标索引;Disable Change Button:隐藏添加或删除程序的列表中的更改按钮;Disable Remove Button:隐藏添加或删除程序的列表中的删除按钮;¾Product PropertiesName:产品名称,显示在整个安装界面的产品名称;INSTALLDIR:安装的默认路径;¾String Tables每种安装语言都有一个节点,安装中使用的字符串。
InstallShield 使用手册(SP补丁)

InstallShield 使用手册1 总体介绍 (1)2安装程序制作过程(MSI) (1)2.1 New Project (1)2.2 Installation Information (2)2.2.1 General Information (2)2.2.2 Update Service (6)2.2.3 Trialware * (7)2.3 Organization (7)2.3.1 Setup Design (7)2.3.2 Features (11)2.3.3 Components (11)2.4 Application Data * (11)2.4.1 Files and Folders * (11)2.4.2 Redistributables * (11)2.4.3 Mobile Devices * (11)2.5 System Configuration (12)2.5.1 Shortcuts (12)2.5.2 Registry * (12)2.5.3 ODBC Resources * (12)2.5.4 INI file Changes * (12)2.5.5 Environment Variables * (12)2.5.6 XML File Changes * (12)2.6 Server Configuration * (12)2.6.1 Internet Information Services * (12)2.6.2 Component Services * (13)2.6.3 SQL Scripts * (13)2.7 Behavior and logic (13)2.7.1 InstallScript (13)2.7.2 Custom Actions (13)2.7.3 Sequences (14)2.7.4 Support Files * (15)2.7.5 System Search * (15)2.7.6 Property Manager * (15)2.8 User Interface * (15)2.8.1 Dialogs * (15)2.9 Media * (15)2.9.1 Path Variables * (15)2.9.2 Upgrades * (15)2.9.3 Releases * (15)2.9.4 Patch Design * (15)2.9.5 Distribute * (15)2.10 Additional Tools * (15)2.10.1 Dependency Scanners * (15)2.10.2 MSI Debugger * (16)2.10.3 Direct Edtiors * (16)2.11 Build Installation (16)3 其他介绍 (16)3.1 常用函数 (16)3.2 其他注意事项 (16)注:*表示一般不使用,所以不做介绍的功能1 总体介绍InstallShield v10.5是功能强大,并能全面支持MSI 3.0规范的安装程序制作工具。
InstallShield脚本编程基本语法

OpenFileMode(FILE_MODE_APPEND);
OpenFile(nvFileHandle,"C:\\","Autoexec.bat");
WriteLine(nvFileHandle,"SETPATH=%PATH%;C:\\ORAWIN95\\BIN");
(4)!
非操作,与C语言中用法相同,例:!x1
(5)*
指针操作,类似C语言中的*
(6)&,|,^,~,<<,>>
分别为位与,位或,按位异或,按位取反,左移和右移,其意义和用法都与C语言中基本相同。
(7).
该操作符用于结构,用来得到结构的子项,与Delphi的.用法类似,例如:
1.变量
BOOL布尔型值为TRUE(1)或FALSE(0)
CHAR字符型一字节长的(8bit)的字符
HWND窗口句柄用来存放窗口句柄
INT整型两字节长的整数
LIST列表型指向InstallShield列表,用ListCreate和ListDestroy
在function SetupInstall()中修改以下代码,如默认目录改为C:\JttMis,见以下修改的代码
if(bIs32BitSetup)then
svDir=WINDISK^"Jttmis";
else
svDir=WINDISK^"Jttmis";//useshortnames
function SetupFolders()
NUMBER nResult;
InstallShield制作说明

虽然网上关于InstallShield的制作说明已经很多,但是看的时候还是会有些晕乎乎的,不得不说很复杂。
前段时候做了一次,后面需要升级,在重新做的时候发现有些地方自己又忘了,所以有必须将自己看的教程和实际操作的体会结合起来,认真的写个特别详细的制作说明,使步骤尽可能简化清晰,为了自己也为其他同仁。
各位可以先下载已做好的安装包,看看是否符合你的需求。
一、在制作安装包前,先整理一下安装文件先来看“先决条件安装文件”,这里我们用来存放运行该产品需要的基本环境(比如:Net Framework、数据库等)的安装文件。
另外还放了图标和许可协议,制作的时候需要,放一起便于管理。
再来看看“XX软件”,可以看看QQ在安装后的开始菜单里,会先有腾讯软件->QQ2013->QQ 这样的目录结构,这样的结构使得一个公司的产品放在一起便于用户查看。
所以我也采用这种结构来先整理目录结构,这个结构也是用户安装产品后的目录结构。
上面APP_1和APP_2是独立的应用分开放,外面的数据库配置是公用部分放最外面。
当然,“XX产品”里面的目录需要根据你实际情况来决定。
不过,在你制作安装包前,一直要试一下各个exe程序能不能正常运行,否则做好后运行不了,找不到原因就麻烦了,毕竟快捷方式只是个链接。
这里说明一下为什么会有这个DataBaseSetting.exe呢,因为我们的产品可能需要新建数据库、需要修改注册表等操作,但是用InstallShield来做这些,对于不熟悉的人来说还是很麻烦的,或许就不能做,所以还是用C#写了个小程序来做这些工作要简单的多,只是要多点下按钮,但更灵活。
二、新建一个“InstallScript MSI Project”工程三、在引导条上配置基本属性Project Assistant是类似于界面操作【Project Assistant】->【Application Information】,输入公司名,产品名,版本号,网址。
installshield学习笔记

安装前设置界面公司标识在OnBegin函数中,添加如下脚本:SetTitle(IFX_PRODUCT_NAME + "-Infomedia", 0, BACKGROUNDCAPTION);安装中安装.netRegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);if(RegDBKeyExist("SOFTWARE\\Microsoft\\.NETFramework\\policy\\v4.0")<0)then if(AskYesNo("尚未安装.net framework4.0!\n是否安装?",YES))thenif(LaunchAppAndWait(SUPPORTDIR^"dotNetFx40_Full_x86_x64_en.exe","/norestart",WAIT)<0)thenSprintfBox(MB_OK,".NET安装","安装.net框架发生意外!");elseInstallNet=TRUE;endif;elseInstallNet=FALSE;endif;elseendif;注:InstallNet在开始定义BOOL类型修改OnFirstUIAfter中的脚本以判断是否重启。
vbs控制IIS直接使用 adsutil.vbs IIS自带的脚本来做的.基本上IIS的所有操作都可以用这个脚本完成.目录在C:\inetpub\AdminScriptsServerManagerCmd.exe 管理安装服务器角色参数名称:修改IIS中ISAPI和CGI限制%windir%\\system32\\inetsrv\\appcmd.exe set config /section:isapiCgiRestriction /[path='C:\Windows\\Framework\v4.0.30319\aspnet_isapi.dll'].allowe d:True控制文本框自定义界面,如果控制文本框此时,当选择文本框时,便可取消其它选项的状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
InstallShield脚本语言的编写编号:QA001188建立日期: 1999年6月16日最后修改日期:1999年6月16日InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加。
一.基本语法规则1.变量BOOL 布尔型值为TRUE(1)或FALSE(0)CHAR 字符型一字节长的(8bit)的字符HWND 窗口句柄用来存放窗口句柄INT 整型两字节长的整数LIST 列表型指向InstallShield列表,用ListCreate和ListDestroyLONG 扩展数值型LPSTR 扩展指针NUMBER 数值型存放四字节长的数值,范围从-2147483648到+2147483647POINTER 指针型SHORT 短数值型STRING 字符串型十分类似VC中的LPCTSTR变量如同标准的C语言,在使用前需要事先声名。
变量通常在两个位置进行声名,一是主程序外部,这样的变量为全局变量,二是各函数的变量声名区,这样的变量是局部变量。
2.操作符一般的与C语言相同操作符,在这里不做详解,以下主要介绍比较特殊的操作符,(1) + , - , * , /以上四个操作符与C语言中意义和用法都相同。
(2) &&与操作,与C语言中用法相同,例:x1 && x2(3) ||或操作,与C语言中用法相同,例:x1 || x2(4) !非操作,与C语言中用法相同,例:!x1(5) *指针操作,类似C语言中的*(6) & , | , ^ , ~ , << , >>分别为位与,位或,按位异或,按位取反,左移和右移,其意义和用法都与C语言中基本相同。
(7) .该操作符用于结构,用来得到结构的子项,与Delphi的 . 用法类似,例如:typedef SETTINGSRECbeginBOOL bSwitchOn;STRING szMssg[255];INT nVal;end;SETTINGSREC settings;programsettings.bSwitchOn = FALSE;settings.szMssg = "Off";settings.nVal = 0;(8) =既可作为赋值号,同时也做等于符,例如:str1 = "String";if str1="String" thenendif;(9) &取地址符,与C语言用法类似。
(10) < , > , = , <= , >= , !=分别表示小于,大于,等于,小于等于,大于等于,不等于(11) + , ^ , %用于字符串的操作。
(12) ->结构指针,与C语言中用法类似。
(13) @用于得到Resource窗口中定义的字符串,例:szReferenceFile = svDir ^ @PRODUCT_KEY;3.函数InstallShield的函数使用前同样需要声名,函数的参数传递方式十分类似C语言,例如下面的函数声名:prototype HandleMoveDataError( NUMBER );该声名中函数名为HandleMoveDataError,传递一个NUMBER类型的参数。
调用该函数时也基本与C语言中相同。
函数体的标准格式为:function functionname(nResult)// 函数变量声名区begin// 程序区end;通常的函数返回一个NUMBER型的数。
4.主程序结构主程序以program开始,以endprogram结尾,二.框架程序的基本结构程序开始为函数与变量的声明区通过向导建立的框架程序包含以下一些主函数:prototype ShowDialogs();// 显示安装向导对话框prototype MoveFileData();// 移动文件数据prototype HandleMoveDataError( NUMBER );// 移动数据出错处理prototype ProcessBeforeDataMove();// 移动文件数据前的处理prototype ProcessAfterDataMove();// 移动文件数据后的处理prototype SetupRegistry();// 安装注册,用户可在此加入一些代码,通常用于对注册表的操作prototype SetupFolders();// 安装生成快捷方式,通常用户可在此加入生成快捷方式的代码prototype CleanUpInstall();// 安装完成后清除临时文件prototype SetupInstall();// 安装的实际过程prototype SetupScreen();// 设置安装过程的屏幕显示(包括背景颜色,字体等)prototype CheckRequirements();// 检查安装需求(包括硬盘空间,操作系统平台等)prototype DialogShowSdWelcome();// 显示“欢迎”对话框窗口prototype DialogShowSdLicense();// 显示许可信息的对话框prototype DialogShowSdRegisterUserEx();// 显示用户安装注册的对话框prototype DialogShowSdAskDestPath();// 显示“安装路径选择”对话框prototype DialogShowSdSetupType();// 显示“安装类型选择”对话框prototype DialogShowSdComponentDialog2();// 当用户选择“定制”安装时,用于显示供用户选择的组件的对话框prototype DialogShowSdSelectFolder();// 显示快捷方式文件夹选择的对话框prototype DialogShowSdFinishReboot();// 显示“安装完成重启动”对话框编程实例:1.怎样在进度条左上角显示当前安装的文件在function SetupScreen()中加入以下语句Enable( INDVFILESTATUS );2.怎样改变窗口背景色SetColor( BACKGROUND, **** )函数可以改变窗口背景色,在适当的位置加上它即可,其中第二个变量可以为以下值:BK_BLUE BK_MAGENTA BK_PINK BK_YELLOWBK_GREEN BK_ORANGE BK_RED以上几种为渐变色BK_SOLIDBLACK BK_SOLIDMAGENTA BK_SOLIDREDBK_SOLIDBLUE BK_SOLIDORANGE BK_SOLIDWHITEBK_SOLIDGREEN BK_SOLIDPINK BK_SOLIDYELLOW同时第二个参数也可以用RGB来描述,如SetColor( BACKGROUND, RGB(0,0,255) )3.怎样在InstallShield5.0以下版本建立快捷方式在InstallShield5.1以上版本可以可以在Resource窗口中建立,而在以前的版本必须用程序解决该问题,如果现在有一文件RegPad.exe(安装路径为用户选定的),给该程序在“开始”->“程序”中加一个快捷方式,具体实现程序如下:function SetupFolders()NUMBER nResult;STRING svResult,szCommand;STRING szName;beginszName = "RegPad.exe";szCommand = TARGETDIR ^ szName ;LongPathToQuote ( szCommand , TRUE );AddFolderIcon ( FOLDER_PROGRAMS ^"RegPad1.0Beta","RegPad" ,szCommand , TARGETDIR , "" , 0 , "" , REPLACE );4.怎样控制用户序列号在向导生成的框架程序中,定义了一个STRING型的全局变量svSerial,在SdRegisterUserEx()结束时将给该值赋上用户输入的序列号,你对该变量进行判断即可。
5.怎样控制重新启动计算机只需加入以下语句System ( SYS_BOOTWIN );6.怎样给Autoexec.bat或Config.sys加入语句以下程序给Autoexec.bat加入一行语句OpenFileMode ( FILE_MODE_APPEND );OpenFile (nvFileHandle, "C:\\", "Autoexec.bat");WriteLine ( nvFileHandle , "SET PATH=%PATH%;C:\\ORAWIN95\\BIN" );7.怎样在安装结束时允许用户选择是否打开Readme文件假定Readme.txt文件已经复制到目标路径,以下程序将显示一个复选框,如果用户选择了,则用记事本打开Readme.txt。
function DialogShowSdFinishReboot()NUMBER nResult, nDefOptions;STRING szTitle, szMsg1, szMsg2, szOption1, szOption2,szPathls;NUMBER bOpt1, bOpt2;beginif (!BATCH_INSTALL) thenbOpt1 = TRUE;bOpt2 = FALSE;szMsg1 = "";szMsg2 = "";szOption1 = "阅读Readme文件";szOption2 = "";nResult = SdFinish( szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2 );if bOpt1 = TRUE thenCopyFile ( "Readme.txt" , "Readme.txt" );LaunchApp ( WINDIR^"Notepad.exe" , TARGETDIR^"Readme.txt" );endif;return 0;endif;..........8.如何指定默认路径在function SetupInstall()中修改以下代码,如默认目录改为C:\JttMis,见以下修改的代码if (bIs32BitSetup) thensvDir = WINDISK ^ "Jttmis";elsesvDir = WINDISK ^ "Jttmis"; // use short namesendif;TARGETDIR = svDir;。