软件运行后,会根据用户的要求在安装目录下生成*.txt文件;但是在点击安装文件,选择删除软件时,却不能删除生成的*.txt文件,请问该如何才能将安装目录下所有文件都删除?我用的是installshield6.22;

解决方案 »

  1.   

      function OnUnInstalling()
      begin
                   DeleteDir(TARGETDIR,ALLCONTENTS);   
                   DeleteDir(TARGETDIR,ONLYDIR); 
                   DeleteDir(FOLDER_PROGRAMS ^ @PRODUCT_NAME,ALLCONTENTS);
                   DeleteDir (FOLDER_PROGRAMS ^ @PRODUCT_NAME,ONLYDIR);   
      end; 
    添加这个脚本代码看看,我就是这样做的
      

  2.   

    export  prototype OnUnInstalling() ;
    忘记给你声明。
    还有
    OnMaintUIBefore()事件也可以写。OnUnInstalling() 好像回进不去。自己看看他的帮助吧
      

  3.   

    我直接把代码加到Setup.Rul文件中,编译时出现
    Compiling...
    Folder: <C:\My Installations\RX_MBVS\Script Files>
    Setup.Rul(37): error C8003: 'OnUnInstalling' : function has no prototype declaration 
    Done-  1 error(s), 0 warning(s)
    请问该如何处理?
      

  4.   

      function   OnMaintUIBefore()   
              STRING   svResult,szCaption;   
              NUMBER   nResult,snResult,nLevel,nType;
              string   szApp; 
              STRING   szTitle,szMsg,svDir,szComponents; 
      begin   
            //   TO   DO:       if   you   want   to   enable   background,   window   title,   and   caption   bar   title         
            //   SetTitle(   @TITLE_MAIN,   24,   WHITE   );   
            //   SetTitle(   @TITLE_CAPTIONBAR,   0,   BACKGROUNDCAPTION   );       
            //   SetColor(BACKGROUND,RGB   (0,   128,   128));   
            //   Enable(   FULLWINDOWMODE   );   
            //   Enable(   BACKGROUND   );
            Dlg_Start: 
             svResult   = "是否真的要卸载程序?";//  SdLoadString(IFX_MAINTUI_MSG);   
             szCaption   =  SdLoadString(IFX_ONMAINTUI_CAPTION);   
             nResult   =   SprintfBox(MB_OKCANCEL,szCaption,"%s",svResult);                        if   (nResult   =   IDCANCEL)   then   
                    exit;  
                 //   UnInstallDlg();   
               //   setup   default   status           
                   SetStatusWindow(0,   "");   
                   Enable(STATUSEX);   
                   StatusUpdate(ON,   100);   
        
                   //-->Remove   all   components   
                  ComponentRemoveAll();
     
                     DeleteDir(TARGETDIR,ALLCONTENTS);   
                   DeleteDir(TARGETDIR,ONLYDIR); 
                   DeleteDir(FOLDER_PROGRAMS ^ @PRODUCT_NAME,ALLCONTENTS);
                   DeleteDir (FOLDER_PROGRAMS ^ @PRODUCT_NAME,ONLYDIR);                  
              endif;           //endswitch;           
       
           return   0;   
      end;  这样试试,我没试过删除自己生成并只读的,不知道行不行,我试过普通的txt都能删除