看预定义常量的值:SprintfBox(INFORMATION,"","%d",变量值);
 
 
自定义常量:#define MAXCOUNT 1000;#define COMPAN_NAME "Example_Company";
 
 
所有用prototype声明过的函数都必须在函数块中定义,
 
 
 
在预处理语句后面不带“;”例如:#define,#include等等;
关键字program,endprogram和end和begin
 
 
获取c盘空间大小的脚本
#define DISK_DRIVE "C:\\"
STRING szDrive,svString;
NUMBER nSpace,nResult;
 
szDrive = DISK_DRIVE;
nSpace = GetDiskSpace(szDrive);
 
nResult = NumberToStr(svString,nSpace);
if(nResult < 0) then
   MessageBox("NumToStr failed.",SERVE);
   abort;
endif;
 
SprintfBox(INFORMATION,"info","Disk space:%s",svString);
 
 
操作符说明:
加入路径操作符(^)该操作符用于将路径加入到路径描述或文件名描述中去。
当你想把两条路径或者和一个文件名连接到一起时,可以使用加入路径(^)操作符
。当把一个文件名或者一个子目录加入到路径中时,该操作符会自动检查是否有足够
数量的反斜杠符号:
szStringVar = “c:\\MYPATH\\”^";
 
 
查找字符串(%):使用字符串操作符(%)可以确定一个字符串是否是另外一个字符串的字串。字符串操作符是不区分大小写的。
szStringVarA = "This is a sample string.";
if(szStringVarA %"sample"//SAMPLE大小都可以的) then
   MessageBox("操作完成","");和
endif;
 
函数:
AskYesNo("Installation Complete.Would you like to view the ReadMe file Now?",YES);//默认的选择的是yes哦
 
当安装脚本遇到abort语句时,安装程序就会终止。然后卸载过程就会在后台自动运行去回滚未完成的安装,并删除那些已经安装的并在安装脚本中
等级的文件。当用户在安装过程中按下Esc键、F3键或者安吉对话框中的Cancle按钮时,安装程序就会调用默认的退出事件的处理句柄,在这里也用到了abort语句。
 
 
for循环
 
for iCount = 1 to 10
MessageBox("you 1 see this 10 times",INFORMATION);
endfor;
 
降序for循环
for j = 20 downto 10 step 5//20,15,10
MessageBox("you will seee this three times",INFORMATION);
endfor;
 
步长:
for iCount = 10 to 100 step 10
MessageBox("you 1 see this 10 times",INFORMATION);
endfor;
 
Goto:
关键字goto用于将程序直接跳转到指定标号的那个分支行去。在下面的代码段中,goto语句可以使程序直接跳转到标号name所指定的那一行去。
Name:
 AskText("Company name :","",szSrc);
if(szSrc = "") then
MessageBox("Place enter the company name.",SERVE);
goto name;
endif;
在主程序中声明的标号,只能goto到主程序中的goto标号中,在函数中声明的goto语句只走到函数中的goto语句
 
 
安装完毕重启代码:
在After Move Data--->OnEnd函数里面
function OnEnd()
begin
SdFinishReboot ("title", "haha", 0, "oooo", 0);//第二个参数必须为数字零现在还不允许有其他的值哦
end;
 
 
RegDBSetDefaultRoot(HEKY_LOCAL_MACHINE);注册表的根节点
 
 
abort和exit 的区别:
 
都是退出安装过程,区别是abort有回滚过程,而exit则只是结束安装过程,对之前的操作不做任何回滚动作。
 
 
改变对话框标题的installshield ward的方法:SetTitle(IFX_PRODUCT_NAME, 0, BACKGROUNDCAPTION);是在onBegin方法里面增加这一条。
 
 
函数的执行顺序:
Before Move Data        OnBegin
Before Move Data        OnFirstUIBefore
Before Move Data        OnMaintUIBefore
 
 
 
Move Data            OnMoved
 
 
 
After Move Data         OnFirstUIAfter
After Move Data         OnMaintUIAfter
 
 
 
函数的执行顺序
InstallShied2008的函数执行顺序如下:
OnBegin ---> OnShowUI
OnShowUI里面为:
OnFirstUIBefore ----> OnMoveData ------> OnFirstUIAfter
OnFirstUIBefore (include): 欢迎界面, 选择安装路径, 安装的类型(这个界面已经却掉) .
OnMoveData(include): 文件的拷贝
OnFirstUIAfter(include): FileAttribute, Modify registration, create shortcut, register filter/com, excute custom exe;
第二次运行Setup的时候:(维护,一般会出现我们所看见的Repair、Modify、Delete三个选项)
OnMainUIBefore ---> OnMoveData ----> OnMainUIAfter 
 
改变内部对话框的标题栏的图片的方法:首先需要将bmp格式(尺寸大小为499*58像素点)文件添加到Support Files/Language Independent目录下
 之后在事件响应函数OnBegin中添加如下代码:
DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE);
 
 
****************************************************************填写注册码代码分支*******************************************************
Dlg_AskRegisterCode://注册码填写dialog
   
    SetDialogTitle (DLG_ASK_TEXT, "注册码验证:请输入正确的验证码");
    nResult = AskText ("注册码:", szRegisterCode, szRegisterCode);
    if (nResult = BACK) then 
     
        goto Dlg_SdLicense2;
    endif;
    
    if(szRegisterCode = "") then 
       MessageBox("注册码不能为空",SEVERE);
       goto Dlg_AskRegisterCode;
    endif;
    if(StrLengthChars(szRegisterCode) != 16) then
       MessageBox("请输入正确的注册码",SEVERE);
       szRegisterCode = "";
       goto Dlg_AskRegisterCode;
    endif;
       
    if(StrLengthChars(szRegisterCode) = 16) then
       SdShowMsg("正在验证中.....",TRUE);
       Delay(3);
       SdShowMsg("正在验证中.....",FALSE);
       MessageBox("联网验证失败!程序将会稍后验证....",INFORMATION);
       bRegisterCodeChecked = TRUE; 
       //将注册码保存到安装目录下的 文件中 
       //文件名为:
       OpenFileMode (FILE_MODE_APPEND); 
       if(ExistsDir(szDir) = NOTEXISTS) then
           CreateDir(szDir); 
       endif; 
       if(CreateFile (nvFileHandle, szDir,"") < 0) then
          MessageBox("注册码文件创建失败!",SEVERE);
       else
         if(WriteLine(nvFileHandle, szRegisterCode) < 0) then
         MessageBox("注册码保存失败",SEVERE);
         endif;
       endif;
       CloseFile(nvFileHandle);
       goto Dlg_AskPlatformServerIP;
    endif; 
 
****************************************************************填写注册码代码分支*******************************************************
学习博客:
http://www.cnblogs.com/BeyondTechnology/category/265153.html
 
 
***************************************************************安装完成以后不在控制面板里面显示卸载图标**********************************
function OnEnd()
 string subKey;
begin
subKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID;    
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if (RegDBKeyExist(subKey) =1) then
RegDBDeleteKey (subKey);   //不在控制面板的添加删除程序中显示。
endif;  
if(!ExistsDir(DISK1TARGET)) then
DeleteDir(DISK1TARGET,ALLCONTENTS);//去掉卸载功能。
endif;
end;
 
 
或者:
 
Installation Designer->Media->Releases: 选择要设置的release项,
 
在右边的参数列表中 Hide Add/Remove Panel Entry(最后一项),设置为yes
 
 
***************************************************************安装完成以后不在控制面板里面显示卸载图标**********************************
  
 
 
 
 
 
 
***************************************************************隐藏初始化界面的方法******************************************************
在InstallShield制作的安装包中,可以通过参数hide_progress隐藏启动初始界面,但工程不同,应用方法不同:
 
InstallScript工程:
设置方法:在Installation Designer-> Media -> Releases -> Release * -> Setup.exe选项卡中,Setup Command Line属性项中加上“/hide_progress”
 
***************************************************************隐藏初始化界面的方法******************************************************2013/3/18
 
问题:
1/创建快捷键的图标
2/创建卸载的图标
3/自定义欢迎前面的窗口的设置
4/设置窗体标题行最右边的图标
5/设置窗体标题栏下方,右侧的背景图
 
 
Dlg_SetupType2

installshield学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. 如何让msvsmon.exe 以服务方式运行

    通常我们在VS上调试程序用的都是msvsmon.exe, 使用管理员权限运行再选项设置任何人可以调试就可以了,而这个在绝大多数情况下都没有问题.而我想说的就是特殊的情况,跟msvsmon的运行权限相关 ...

  2. cf 323A A. Black-and-White Cube 立体构造 不知道为什么当k为奇数时构造不出来 挺有趣的题目吧

    A. Black-and-White Cube time limit per test 1 second memory limit per test 256 megabytes input stand ...

  3. 密码配置配置SSH免密码登陆

    在本文中,我们主要介绍密码配置的内容,自我感觉有个不错的建议和大家分享下 我的用户名是master 1.安装ssh(若没安装的话) sudo apt-get install ssh 2.配置为可以免密 ...

  4. SQlServer---时间的操作

    select Day(getdate())--当前日是这个月的第几天 -Day(getdate()))))--当前月有多少天 -Day(getdate()))))-Day(getdate())--当前 ...

  5. java多线程并发编程与CPU时钟分配小议

    我们先来研究下JAVA的多线程的并发编程和CPU时钟振荡的关系吧 老规矩,先科普 我们的操作系统在DOS以前都是单任务的 什么是单任务呢?就是一次只能做一件事 你复制文件的时候,就不能重命名了 那么现 ...

  6. 项目开发之分页---异步分页(ajax)

    PS:前面忘了给大家讲解后台需要做的 ,同步分页的时候,我们只需要定义一个方法,给前台传递一个page对象,前台接收到直接展示即可:异步分页要多一步,首先还是写一个方法,传递初始对象,后面的ajax返 ...

  7. Python_day1 基础语法

    1.基础语法变量: 在左侧自定义输入变量名,右侧可以输入任意类型赋值给左侧,如需制定类型,可以强转name = Jason, age = int(24) provience = ['beijing', ...

  8. 009-程序集路径Web窗体

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs& ...

  9. USACO 3.3 Camelot

    CamelotIOI 98 Centuries ago, King Arthur and the Knights of the Round Table used to meet every year ...

  10. Writing clean code is what you must do in order to call yourself a professional.

    Clean Code  A Handbook of Agile Software Craftsmanship