手写installshield入门

进入installation designer 窗口

点击左边树导航中的 installscript

要使用 installshild自带的向导窗口 必须先 添加两个头文件

#include "ifx.h"
#include "SdDialog.h"  

定义变量 必须在 program 与endprogram之外

比如 添加 变量

STRING title; 
string path,asktext;   

在intallscript中式区分大小写的   除了BOOL、HWND及LIST类型不能使用小写外,其余的数据类型还有其小写形式

函数的定义必须在开头  也是 program之外

prototype alert(BYREF STRING);

后面必须要实现该函数

实现代码 为

function alert(title)
begin  
        SetDialogTitle(DLG_MSG_INFORMATION,title);
           MessageBox(title,INFORMATION) ;
  
end;

BYREF 表示是引用调用

比如 我们现在添加下面一段代码

program   
      start:
      SetTitle("开始",24,BLACK);
      title="liaomin";
      path="c:/dlp";  
      Welcome("欢迎使用",0);
      //SdAskDestPath添加一个选择安装路径的对话框        
      //第一个参数表示 窗口标题 ,第二个参数是窗口的描述 如果是“”则使用默认的 第三个参数
      //是默认的路径 如果重新选择 新的值会被赋予给path
      if(SdAskDestPath(title,"我的东西我做主",path,0)=NEXT)  then   
      TARGETDIR=path;
      endif;
   
      //和messagebox一样的方法   
      SprintfBox(INFORMATION,"日你","你选择的路径是:"+path);  
      //添加一个输入对话框的窗口 值会自动赋给asktext变量
      while(TRUE)
      //第二个参数是默认值
      if(AskText("请输入没完成的理由","理由",asktext)==NEXT) then     
         if(StrLengthChars(asktext)<6) then        
            MessageBox("请输入的理由大于6位",INFORMATION);
         else
            goto endthis;
         endif;
      endif;
      endwhile;  
      endthis:
      //第二个参数是默认选中的是YES      当然也有 if then  elseif then endif语句
      result=AskYesNo("你确定要完成了吗",YES);
      if(result=YES) then
        MessageBox("完成了关闭它,sb",INFORMATION);
      else
        MessageBox("没完成重新来一遍",INFORMATION); 
       
        goto start;
      endif;
endprogram 

program 就是安装程序一直在运行的过程就是在该语句块中定义的

比如要加什么对话框 之类的

点击左边树窗口的dialog    右边列出了所有的窗口

你要调用什么就用  窗口的名字  调用就行了  入口不知道传递什么参数  选中函数名 按F1  帮组文档讲的非常详细

如果要查什么函数 也是一样的  按F1 后 想个大概名称  比如 删除文件  

大概 想到是 DeleteFile  帮助文档搜索一下 果然有

原文地址:https://www.cnblogs.com/liaomin416100569/p/9331574.html