论坛风格切换切换到宽版
  • 4139阅读
  • 7回复

【已解决】Inno 如何在按"安装"后才立刻 [复制链接]

上一主题 下一主题
离线Dreamcast
 

发帖
91
金钱
60
威望
6
只看楼主 倒序阅读 0 发表于: 2010-03-03
[InstallDelete] 是在打开程序后立刻执行的,我想把它搬到按"安装"后才执行,避免在预览安装程序界面的时间就开始删东西,怎么做?
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2010-03-03
你可以在[RUN]段执行删除文件。
离线Dreamcast

发帖
91
金钱
60
威望
6
只看该作者 2 发表于: 2010-03-03
[RUN]段的话是在程序安装结束后执行的吧?这样的话之前装的一些文件就被删除了。我是想在安装前清空某些目录,然后我再放入自己的文件。
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2010-03-04
如果一定要在按“安装”按钮后执行,那么要用 NextButtonClick 函数。
离线Dreamcast

发帖
91
金钱
60
威望
6
只看该作者 4 发表于: 2010-03-04
如下有效,老虎再看看有啥不对不
QUOTE
function NextButtonClick(CurPageID: Integer): Boolean;
var
  ResultCode: Integer;
begin
  case CurPageID of
  wpReady:
begin
  DelTree(ExpandConstant('{cf}\PPLiveNetwork'), True, True, True);
  DelTree(ExpandConstant('{userappdata}\PPLive'), True, True, True);
  DelTree(ExpandConstant('{commonappdata}\PPLive'), True, True, True);
end;
end;
  Result := True;
end;
离线xwhminghan

发帖
263
金钱
1440
威望
144
只看该作者 5 发表于: 2010-03-04
试试这个。另外 case……of是判断几个条件里面的,只要出现一个,就执行后面的语句,你这里只有一个。如果你不要前面那两个条件,你也可以删除了。

CODE
function  NextButtonClick(CurPageID: Integer): Boolean;
begin
  if CurPageID=wpReady then
  begin
      Result := True;
      if FileExists(ExpandConstant('{app}\PPLive.exe')) then
      if MsgBox('即将删除以下文件或文件夹', mbInformation, MB_YESNO or MB_DEFBUTTON1) = IDYES then
      begin
        DelTree(ExpandConstant('{cf}\PPLiveNetwork'), True, True, True);
        DelTree(ExpandConstant('{userappdata}\PPLive'), True, True, True);
        DelTree(ExpandConstant('{commonappdata}\PPLive'), True, True, True);
      end;
        Result := false;
  end
  else Result := True;
end;
呵呵,很囧,我本人没有学过计算机语言之类的课程,而我学习打包软件,完全处于自己的兴趣而已,Inno Setup 也只是学习了几个月,NSIS 也只是接触一点点,对于Pascal语言,没有一个系统的了解,因此还很陌生,还望大虾们以后多多赐教,表笑我啊~~
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 6 发表于: 2010-03-05
QUOTE(ドラゴン桜 @ 2010年 03月 04日 19时 37分) [snapback]369351[/snapback]

如下有效,老虎再看看有啥不对不
QUOTE
function NextButtonClick(CurPageID: Integer): Boolean;
var
  ResultCode: Integer;
begin
  case CurPageID of
  wpReady:
begin
  DelTree(ExpandConstant('{cf}\PPLiveNetwork'), True, True, True);
  DelTree(ExpandConstant('{userappdata}\PPLive'), True, True, True);
  DelTree(ExpandConstant('{commonappdata}\PPLive'), True, True, True);
end;
end;
  Result := True;
end;


没有不对的。
离线Dreamcast

发帖
91
金钱
60
威望
6
只看该作者 7 发表于: 2010-03-05
多谢老虎:)
另外,茗菡兄给的代码是无法执行安装的。