我试图使用 Inno Setup – How to hide certain filenames while installing? (FilenameLabel)的想法

The only sure solution is to avoid installing the files,you do not want to show,using the [Files] section. Install them using a code instead. Use the ExtractTemporaryFile and Filecopy functions

但是我要隐藏的文件在[Run]部分中使用:

[Files]
Source: "_Redist\DXWebSetup.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall

[Run]
Filename: "{tmp}\DXWebSetup.exe"; Components: DirectX; StatusMsg: "Installing DirectX..."; \
  BeforeInstall: StartWaitingForDirectXWindow; AfterInstall: StopWaitingForDirectXWindow

如何使用[Files]部分,ExtractTemporaryFile和Filecopy函数隐藏(在filenamelabel中安装时)?

解决方法

最简单的是放弃标准的[文件]和[运行]部分,并在 CurStepChanged event fuction中自行编码:
[Files]
Source: "dxwebsetup.exe"; Flags: dontcopy

[Code]

procedure CurStepChanged(CurStep: TSetupStep);
var
  Progresspage: TOutputProgressWizardPage;
  ResultCode: Integer;
begin
  if CurStep = ssInstall then { or maybe sspostInstall }
  begin
    if IsComponentSelected('DirectX') then
    begin
      Progresspage := CreateOutputProgresspage('Installing prerequsities','');
      Progresspage.SetText('Installing DirectX...','');
      Progresspage.Show;
      try
        ExtractTemporaryFile('dxwebsetup.exe');
        StartWaitingForDirectXWindow;
        Exec(ExpandConstant('{tmp}\dxwebsetup.exe'),'',SW_SHOW,ewWaitUntilTerminated,ResultCode);
      finally
        StopWaitingForDirectXWindow;
        Progresspage.Hide;
      end;
    end;
  end;
end;

这甚至让您有机会检查子安装程序的结果.你可以,例如当子安装程序失败或被取消时,防止安装继续.

然后使用PrepareToInstall而不是CurStepChanged更容易.

另一种选择是在提取子安装程序时显示自定义标签.
见Inno Setup – How to create a personalized FilenameLabel with the names I want?

inno-setup – Inno Setup – 避免显示子安装程序的文件名的更多相关文章

  1. xcode7 – 谁在创建文件“/private/var/tmp/Untitled-*.uicatalog”?

    我正在调查为什么TeamCity构建代理程序用完了磁盘,并且在/private/var/tmp中找到了超过11,000个文件,它们都以Untitled-.uicatalog行命名.每个文件至少0.6MB.总磁盘占用空间约为4GB.这些文件可以追溯到几个月,所以他们能够重新启动.谁在创造他们?Xcode在编译至少有一个图像的xcassets目录时创建这些目录.我可以删除它们吗?

  2. android – 解码和重建后无法安装.apk(Apktool,Apkstudio)

    我用apktool解码了一个apk文件,我没有改变任何东西.之后,我只是再次构建它,然后我尝试安装apk,但即使经过一些基本的更改,我也得到了以下错误.我使用windowscmd做了什么:然后和:我用apkstudio做到了,结果是一样的.Wasitasystemapp?No.有人可以帮我吗?

  3. directx – 如何在桌面应用程序中调出Windows 8屏幕键盘

    我有一个全屏DirectX桌面应用程序,并希望在用户点击我的游戏中的文本框时显示屏幕键盘.有没有办法在全屏模式下执行此操作?执行osk.exe会弹出更老式的屏幕键盘.Windows8触摸键盘将通过执行弹出我只是想通了,因为我正在使用平板电脑上运行的全屏桌面应用程序而没有连接键盘.塞韦林.

  4. 什么是适用于Windows / C的优秀2D图形绘制API?

    我一直在研究一个小应用程序,我一直在使用DirectX/3D在屏幕上绘制纹理.我发现,API很容易使用并且使用OOP原则进行合并,但是我不禁觉得在这个小的东西上使用DirectX是疯狂的过度杀戮.不过,我似乎无法就一个好的选择找到共识.有什么建议?

  5. 如何使用directx 11和Windows 7的硬件加速视频/ H.264解码?

    (找不到任何确认信息,也不知道DXVA2是多余的,可能是DXVA-HD超越了吗?但是没有一个类型存在于我的头文件.他们还指定使用最少的Windows8.我相信使用MF我需要Windows8SDK,现在包括所有的directx库/标题.所以这与Windows7保持一个空白…是否可以获得硬件加速视频解码?D3D11具有视频api,基本上是DXVA2,上面略微改变了界面.你需要很好的了解h.264比特流来进行(真的!

  6. windows – 忽略.gitignore中的符号链接

    是否可以告诉Git忽略符号链接?我正在使用混合的Linux/Windows环境,正如你所知,两者之间的符号链接处理方式截然不同.使用git版本>=1.6Git用于处理与常规文件相同的sym链接,但是较新的git版本检查文件是否超出了符号链接,并会导致致命错误.例如.:

  7. 在CentOs 5上安装/启用PHP Pecl Intl扩展

    原始问题:我在CentOs5机器上安装PHPPeclIntl扩展时遇到问题.使用以下命令安装icu和libicu之后:我尝试像这样安装Intl扩展:我选择搜索ICU库和头文件的默认位置.它最终像这样崩溃:更新按照RusAlex的建议成功安装icu的开发版本之后:我遇到了一个新问题,我在本地也遇到了以下命令:现在产生这个错误:它似乎与已经与Intl捆绑的PHP5.3有关.但是我如何启用此扩展,如果我查看我的PHP信息比我找不到任何引用…

  8. Ubuntu服务器:硬盘总是满的

    我有50GB的vps当我跑df我得到当我从/得到du-h时我还试图找出大于100MB的文件,试着通过find/-size100M-ls来查找占用空间的文件我不知道我还能做些什么来找到我的问题.编辑:更多信息df–inodes/find/-xdev-print|wc-llsofL1分销商ID:Ubuntu描述:Ubuntu10.04.4LTS发布:10.04代号:清醒du和df之间通常存在一些差异,

  9. 如何在没有GUI的情况下在Ubuntu 9.10 Server 64位上安装VMware工具?

    主机操作系统:带有VMwareFusion2.0.6的MacOSX10.5我已成功在VMwareguest虚拟机上安装并运行Ubuntu9.10服务器版.当我选择我的VM并单击安装VMwareTools时,没有任何反应.有没有办法只通过CLI安装VMware工具?

  10. Ubuntu下安装并使用eCryptfs工具

    即前者是解密文件目录,后者是加密文件目录。

随机推荐

  1. delphi – 主窗口按进程名称处理

    DelphiXe,Win7x64如何从进程名称(exe文件的完整路径)获取主窗口句柄,或至少一个类或窗口名称(如果该进程只有一个窗口).例:解决方法我同意Petesh的说法,你需要枚举顶级窗口并检查创建它的进程的模块文件名.为了帮助您开始枚举顶级窗口,这是一个delphi实现.首先,当你回调给你时,你需要一些与EnumWindows方法通信的方式.为此声明一条记录,该记录将保存您要查找的模块的文件

  2. 如何在Delphi中纯粹通过RTTI信息(即不使用任何实际对象实例)获取TObjectList的子项类型?

    我正在使用RTTI实现用于流式传输任意Delphi对象的通用代码,并且为了使其工作(更具体地说,为了使加载部分工作),我需要以某种方式获得TObjectList的子项类型<T>不使用任何实际对象实例的字段.要求不使用任何实际对象实例的明显原因是,在从流加载对象的情况下(仅基于要加载的对象的类类型的知识),我将不会有任何实例在加载完成之前完全可用–我宁愿只能访问相关类的纯RTTI数据.我希望能

  3. inno-setup – Inno Setup – 安装程序背景图片

    图像作为安装程序背景如何用inno5.5.9做到这一点?

  4. inno-setup – Inno Setup – 如何添加多个arc文件进行解压缩?

    使用InnoSetup解压缩弧文件.我希望有可能解压缩多个arc文件以从组件选择中安装文件(例如).但仍然显示所有提取的整体进度条.这可能吗?的回答的修改预备是相同的,参考其他答案.在ExtractArc中,为要提取的每个存档调用AddArchive.

  5. delphi – 如何在DataSet的帮助下在TAdvStringGrid中显示数据库中的BLOB图像

    解决方法CreateBlobStream正在创建一个TStream对象,而不是TMemoryStream.由于您不想将JPG写入数据库,因此应使用bmRead而不是bmReadWrite.我不习惯sqlite,但你必须确保使用合适的二进制日期类型.为了确保存储的图像真的是JPG,您应该编写JPG以进行测试,例如:

  6. inno-setup – 在Inno Setup的Code部分下载程序后运行程序

    如何运行我通过Internet下载的应用程序,在代码部分中使用,并等待该应用程序完成运行.我有,使用InnoTools下载程序,下载这两个文件,我想,在第二个完成下载后运行该下载,或jdk-8u111-windows-x64.exe,然后继续安装.解决方法使用其他下载插件,而不是ITD(请参阅下面的原因).例如,InnoDownloadPlugin.当您包含idp.iss时,它定义了一个全局IDP

  7. progress-bar – Inno Setup Run部分的简单进度页面

    我的安装程序非常简单,它基本上是:>欢迎页面>进展页面>最终页面欢迎页面和最终页面是标准页面.在Progress页面,我正在静默安装一堆其他程序.实际的脚本是在[Run]部分中安装每个程序.问题是酒吧达到100%然后停留在那里.我只能更改消息文本.我想要实现的是使用Pascal脚本显示进度,例如:这样我就可以显示更准确的进度条.这就是我所拥有的:问题是,当我构建安装程序时,它不显示欢迎页面.我做错了什么?

  8. delphi – 如何使“显示/隐藏桌面图标”设置生效?

    下面的代码调用SHGetSetSettings函数来隐藏桌面图标但它只是从视图菜单中取消选中“显示桌面图标”.我打电话给SHChangeNotify;更新桌面,但这不起作用?解决方法isa,要刷新桌面,您可以将F5键发送到progman窗口隐藏桌面图标的另一种方法是再次显示

  9. inno-setup – Inno Setup – 避免显示子安装程序的文件名

    我试图使用InnoSetup–Howtohidecertainfilenameswhileinstalling?(FilenameLabel)的想法Theonlysuresolutionistoavoidinstallingthefiles,youdonotwanttoshow,usingthe[Files]section.Installthemusingacodeinstead.UsetheEx

  10. inno-setup – Inno Setup磁力链接下载实施

    我目前正在使用InnoDownloadPlugin为我的安装程序下载文件,这个问题最大的问题是faila正确下载文件.因为连接不良等诸多原因.我想添加一种替代方法来下载文件,因此用户可以选择是否需要常规方式或torrent方式.我知道我可以使用aria2c.exe应用程序(https://aria2.github.io/),有人可以帮我实现它的inno设置代码吗?我需要的是使用torrent(ar

返回
顶部