• Inno setup定制安装界面


    Innosetup功能很强大,可以通过它提供的Wizard接口来定制界面,但我对PASCAL语言不熟悉,也不清楚通过那种接口可改动的范围有多大,最后做出来的效果是否好,所以选择了通过一个DLL来实现我的界面。
     
    首先,脚本中增加如下设置,以禁至所有Inno setup自身显示的界面:
    DisableDirPage=yes
    DisableFinishedPage=yes
    DisableProgramGroupPage=yes
    DisableReadyMemo=yes
    DisableStartupPrompt =yes
    DisableWelcomePage=yes
    DisableReadyPage=yes
     
    但ready to install界面还是会显示,需要去掉Ready to install界面,方法是重新编译inno setup,下载代码后使用 Delphi2009(或更新)编译unicode版本的inno setup(非unicode的需要更多delphi老版本,编译会失败),去掉wizard.pas的第2006到2009行。
    将新生成的文件拷到原inno setup的安装目录。
     
      //if (PageID = wpReady) and not Visible then begin
      // Result := False;
      // Exit;
      //end;
    定制安装界面的DLL需要注意的几点:
    1,不能在新建的线程中创建界面,否则在任务栏会看到安装程序有两个缩略图。
    2,如果要让一个函数返回后窗口不消失,只需要让窗口的消息循环函数返回即可,以后还可以重新进入循环。
     
    定制界面DLL的可工作目录
    定制卸载界面时发现,把DLL放到system32目录下就不能运行,在安装程序的目录下能运行。
    但程序的安装目录可能会被用户修改,引用DLL中的函数时,不支持code,所以一旦用户修改程序的安装路径,就无法调用到该DLL。
    将它安装到{win}目录,即可解决这些问题。
    猜测:system32下的程序在64位系统上都是64位,我的DLL是32位程序,所以在system32目录就无法运行,但在其它目录是可以的。
     
  • 相关阅读:
    25- 解决'python -m pip install --upgrade pip' 报错问题
    2018.4.28 基于java的聊天系统(带完善)
    2018.4.27 Java的Swing常用事件
    2018.4.26 Mac安装Redis5.0.3版本服务器
    2018.4.25 设计模式之策略者模式
    2018.4.24 设计模式之桥接模式
    2018.4.23 数据结构
    2018.4.22 深入理解Java的接口和抽象类
    2018.4.21 如何正确快速安装/卸载云服务器Centos7安装GUI图形化界面GNOME桌面环境
    2018.4.20 设计模式之组合模式
  • 原文地址:https://www.cnblogs.com/ceblog/p/4065685.html
Copyright © 2020-2023  润新知