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

Inno 安装完运行程序可以做灰色打钩状态吗? [复制链接]

上一主题 下一主题
离线syl1130
 

发帖
81
金钱
510
威望
71
只看楼主 倒序阅读 0 发表于: 2016-08-31
请教下 Inno 安装完需要运行程序的按钮可以做成灰色打钩状态吗? 不让用户自己选择可以实现吗?谢谢
本帖提到的人: @gnatix @wanfu
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 1 发表于: 2016-09-01
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"
; Flags: isreadme

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"

[Run]
Filename: "{app}\MyProg.chm"; WorkingDir: "{app}"; Description: "查看帮助文件"; Flags: shellexec skipifsilent postinstall
Filename: "{app}\Readme.txt"; WorkingDir: "{app}"; Description: "查看自述文件"; Flags: shellexec skipifsilent postinstall

[Code]
Procedure CurPageChanged(CurPageID: Integer);
Begin
  if CurPageID = wpFinished then
     // 指定第一项不可选
     WizardForm.runList.ItemEnabled[0] := false;
end;
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 2 发表于: 2016-09-01
离线syl1130

发帖
81
金钱
510
威望
71
只看该作者 3 发表于: 2016-09-24
回 1楼(wanfu) 的帖子
wanfu:[Setup]AppName=My ProgramAppVersion=1.5DefaultDirName={pf}\My ProgramDefaultGroupName=My Program....... (2016-09-01 15:34)

wanfu 版主,谢谢回复我的问题,我Code代码里面已经有:
[Code]
procedure curpagechanged(curpage: integer);
var
IDLabel, RegAdr, RegURL: TLabel;
IDEdit: TEdit;
RefDisk, DiskLabel: String;
begin
if curpage=wpUserInfo then
begin
    if DirExists('C:\') then
      RefDisk:= 'C:\'
    else
      RefDisk:= 'D:\';
  DiskLabel:= '                ';
  GetVolumeInformation(RefDisk, DiskLabel, 15, HDSerial, 0, 0, '', 0);

然后再加

Procedure CurPageChanged(CurPageID: Integer);
Begin
  if CurPageID = wpFinished then
     // 指定第一项不可选
     WizardForm.runList.ItemEnabled[0] := false;
end;

导致提示重复错误 不知道如何修改 还希望帮忙指点下 感谢了

本帖提到的人: @wanfu
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 4 发表于: 2016-09-24
注意:wpUserInfo 和 wpFinished 是二个不同的预定义 向导页 PageID 常数,前一个是显示用户信息页时的返回值,另一个是安装完成页时的返回值,PageID 常量还有: wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished。

上面你写的二个常量都在二个同名的 CurPageChanged 函数中,函数名重复当然会产生错误。只需合并一下即可,因为二个常量所对应的页面不同,不会有冲突。

[Code]
Procedure CurPageChanged(CurPageID: Integer);
var
IDLabel, RegAdr, RegURL: TLabel;
IDEdit: TEdit;
RefDisk, DiskLabel: String;
begin
if CurPageID = wpUserInfo then
begin
    if DirExists('C:\') then
      RefDisk:= 'C:\'
    else
      RefDisk:= 'D:\';
      DiskLabel:= '                ';
      GetVolumeInformation(RefDisk, DiskLabel, 15, HDSerial, 0, 0, '', 0);
end else
  begin
    if CurPageID = wpFinished then
       // 指定第一项不可选
       WizardForm.runList.ItemEnabled[0] := false;
  end;
end;

或者
[Code]
Procedure CurPageChanged(CurPageID: Integer);
var
IDLabel, RegAdr, RegURL: TLabel;
IDEdit: TEdit;
RefDisk, DiskLabel: String;
begin
case CurPageID of
wpUserInfo:
  begin
    if DirExists('C:\') then
      RefDisk:= 'C:\'
    else
      RefDisk:= 'D:\';
      DiskLabel:= '                ';
      GetVolumeInformation(RefDisk, DiskLabel, 15, HDSerial, 0, 0, '', 0);
  end;
wpFinished:
      // 指定第一项不可选
      WizardForm.runList.ItemEnabled[0] := false;
end;
end;

离线syl1130

发帖
81
金钱
510
威望
71
只看该作者 5 发表于: 2016-09-25
回 4楼(wanfu) 的帖子
wanfu:注意:wpUserInfo 和 wpFinished 是二个不同的预定义 向导页 PageID 常数,前一个是显示用户信息页时的返回值,另一个是安装完成页时的返回值,PageID 常量还有: wpWelcome, wpLicense, wpPassword, wpInfoBefore, wpU .. (2016-09-24 20:18)

谢谢 版主解答 终于很久被这个问题纠结 现在终于解决了,没有重复错误提示 太感谢了
最后一个问题,就是我的打钩项有三个,我就在下面增加了两条,但是编译运行程序提示错误 list index out of bounds

  begin
   if CurPageID = wpFinished then
      // 指定第一项不可选
      WizardForm.runList.ItemEnabled[0] := false;
      WizardForm.runList.ItemEnabled[1] := false;
      WizardForm.runList.ItemEnabled[2] := false;
end;

错误图片信息:


本帖提到的人: @wanfu
离线wanfu

发帖
2734
金钱
12170
威望
1217
只看该作者 6 发表于: 2016-09-26
你需要在 [RUN] 段也一样要有三个项目才行,见二楼。
离线syl1130

发帖
81
金钱
510
威望
71
只看该作者 7 发表于: 2016-09-26
回 6楼(wanfu) 的帖子
wanfu:你需要在 [RUN] 段也一样要有三个项目才行,见二楼。 (2016-09-26 08:55) 

OK  谢谢版主大人