zoukankan      html  css  js  c++  java
  • 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目录就无法运行,但在其它目录是可以的。
     
  • 相关阅读:
    外部存储 使用详解
    内部存储 使用详解
    SQLite 使用详解
    SharePerference 使用详解
    Preference 使用详解
    Notification 使用详解
    PopupWindow 使用详解
    Fragment 使用详解
    Dialog 使用详解
    ListView 使用详解
  • 原文地址:https://www.cnblogs.com/ceblog/p/4065685.html
Copyright © 2011-2022 走看看