function OnFirstUIAfter()
STRING svLine,szFileName,szServerIP,szUserName,szPwd,szDatabase, svValue,szSectionName,szKeyName,szKeyName1,szKeyName2,svResult;
NUMBER  nLineNumber,nResult,nvFileHandle,nStartLineNum,nEndLineNum;              
BOOL bvCheck1, bvCheck2;
STRING szPath,szLine,szInsertLine;    

    STRING   szProductName, szTitle;
    STRING   szMsg1, szMsg2, szOpt1, szOpt2;  
    BOOL     bvOpt1, bvOpt2;
begin
 
// 一、修改IE目录下的conn.asp文件
szServerIP = "127.0.0.1"; 
szUserName = "sa";
szPwd = "123";
szDatabase = "DBName"; SdShowDlgEdit1 ("IE客户端数据库配置", "请输入要访问的IP地址", "数据库服务器的IP地址", szServerIP);

// Set the file mode to append.
OpenFileMode (FILE_MODE_APPEND);  

szPath = TARGETDIR+"\\IE"; 
szFileName = RNSS_INIFILE; 
OpenFile(nvFileHandle,szPath ,szFileName );

szInsertLine = "                <add key="+ "\""+"SqlCon"+ "\""+" value="+ "\""+"Server="+szServerIP+";"+"User id="+szUserName+";"+"Pwd="+szPwd+";"+"Database="+szDatabase+ "\""+"></add>   ";        
FileInsertLine ( TARGETDIR+"\\IE\\"+szFileName , szInsertLine , 50 , REPLACE );
   // Close the file.
CloseFile (nvFileHandle);   


// Set the product name to substitute for the %P place holder.
    szProductName = "";
   // SdProductName (szProductName);

    // Setup parameters that will be passed to SdFinish.
    szTitle = "安装完成";
    szMsg1  = "";
    szMsg2  = "";
    szOpt1  = "";
    szOpt2  = "";               
    bvOpt1 = TRUE;
    bvOpt2 = FALSE;
    
    // Display the SdFinish dialog box.
    SdFinish (szTitle, szMsg1, szMsg2, szOpt1, szOpt2, bvOpt1, bvOpt2);
    //    if(LaunchAppAndWait( APPLICATION, CMD_LINE, LAAW_OPTION_NOWAIT )<0) then
    //    MessageBox ("Unable to launch "+ APPLICATION +".",SEVERE);
    //    endif;end;
修改完了之后有中文的地方乱码了  web.config文件的编码格式从UTF-8变成ANSI
整两天这玩意儿 快疯了
100分全送啊啊啊
真能解决了还能加 我最高能到200分

解决方案 »

  1.   

    这个是js中自带的方法:escape(这里是你要得理的中文)
      

  2.   

    1楼 not js 
    installshield 脚本语言 一种打包工具
      

  3.   

    LZ如果买的是正版,或者是完全版的盗版,应该有中文语言包吧,安装后选择中文,然后再试试,我以前用过installshield,不过是老版本了,记得没有这个问题的
      

  4.   

    已经选择了中文,2008和10.5都发现有同样的问题,也是用的FileInsertLine ( )修改web.config,同LZ一样...........
      

  5.   

    下面的方法是可以解决的:
    installshield 脚本语言 一种打包工具
    这个是js中自带的方法:escape(这里是你要得理的中文)
      

  6.   


    我用的是10.5的,而且是installscript project做的,会出现,是不是因为FileInsertLine ( )不支持UTF-8格式的文本文件?默认会转换成ANSI格式呢?
      

  7.   

    1、类似OpenFile这种API操作,本身应该就是基于流的操作,不能区分UTF-8和ANSI也很正常。
    2、会不会是OpenFileMode (FILE_MODE_APPEND);没起到作用(我猜的)。才会使得“是不是因为FileInsertLine ( )不支持UTF-8格式的文本文件?默认会转换成ANSI格式呢?”
    3、万一不行,可深度一下其它方式配置Config文件。
    1):采用外部动态库方式,我常用一个C++库来操作。可做复杂的配置文件设置。
    2):直接用Installshield的“System confige”中的"xml file changes"来管理配置文件。
      

  8.   


    1):采用外部动态库方式,我常用一个C++库来操作。可做复杂的配置文件设置。
    这个具体怎么设置啊?请高手指点一下。2):直接用Installshield的“System confige”中的"xml file changes"来管理配置文件。
    这个方法只能在安装的时候改变文件的默认值,并不能通过安装时,用户手动输入来自动获取吧?如果可以,麻烦说的更详细一点
      

  9.   

    函数MsiSetProperty是用在MSI类型工程的吧,在installscript project中试过,我没成功
      

  10.   

    你的html里面设置编码了吗,没有的话设一下:utf-8,gbk,gb2312,gb18030都设一下看看
      

  11.   

    像你这种:
    szInsertLine = " <add key="+ "\""+"SqlCon"+ "\""+" value="+ "\""+"Server="+szServerIP+";"+"User id="+szUserName+";"+"Pwd="+szPwd+";"+"Database="+szDatabase+ "\""+"></add> ";   
    FileInsertLine ( TARGETDIR+"\\IE\\"+szFileName , szInsertLine , 50 , REPLACE );
    简单应用可以直接使有“XML Changes” (自去用google或baidu找)给个我找到的,没图,有大意
    http://hi.baidu.com/wwwsec/blog/item/4a3a53738c9c241a8601b042.html
    中的第四部分四、修改Web.config中的数据库连接字符串
      

  12.   

    补充一点:你要把insert 操作 改成 update操作。
      

  13.   

    我今天也遇到这种问题了。解决了,就是在之前把.XML里面的中文注释去掉
      

  14.   

    补充,就是把源文件里面的xml的中文注释去掉,至于有些值本来就是中文的不用管它。我这样解决了。如果还是不行,试下在这之前,把源文件的编码格式改成ANSI试试。