InstallShield里怎么加序列号?给个例子吧

解决方案 »

  1.   

    7、用InstallShield安装模板制作出的安装程序在运行过程如果没有序列号是无法再继续下去的。但如果我们在序列号上不加任何检验的话,InstallShield会默认为任何字符都是有效的而不管它是什么,此时序列号也就毫无意义,除非你想让你的应用程序无限制的发布。因此,还是建议你在安装过程中对序列号进行一下有效性检验。方法很简单,在事件OnFirstUIBefore中找到Dlg_SdRegisterUserEx分支,见下列代码: 
    Dlg_SdRegisterUserEx:: 
    szMsg = "";  
    szTitle = "";  
    nResult = SdRegisterUserEx( szTitle, szMsg, svName, svCompany, svSerial ); 
    if (nResult = BACK) goto Dlg_SdShowInfoList; 
    在语句 
    if (nResult = BACK) goto Dlg_SdShowInfoList; 
    前添上相应的序列号校验程序 
    //*******增加序列号的检验 
    if ( svSerial != '199721') then 
    MessageBox("警告:输入序列号错误,请确认后重输!",SEVERE); 
    goto Dlg_SdRegisterUserEx; 
    endif; 
    //end. 
    就这么简单。声明一下,这里我只是给出的最简单的判别模式,较为安全的模式是在判别时对序列号进行必要的加解密转换,有兴趣的朋友可以自己去实现 
      

  2.   

    function SetupRegistry()
     NUMBER nResult,nSize,nType;
     STRING szKey,szNumName,szNumValue,svNumValue;
     begin  // TODO : Add all your registry entry keys here
      //
      //
      //    RegDBCreateKeyEx, RegDBSetKeyValueEx....
      //
      szKey="Robert\\RobertSoftware\\Spirit\\Version";//自己的主键
      szNumName = "TestValue";//键名
      szNumValue = "12345";//键值
      nType = REGDB_NUMBER;//类型
      nSize = -1;//指定大小RegDBSetKeyValueEx(szKey, szNumName, nType, szNumValue,nSize) ;//创建
      nResult = CreateRegistrySet( "" );  return nResult;
     end;
      

  3.   

    谢谢两位,因发出这个问题后我很快就自己找到了答案,因此一直没来看了,sorry