杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2477|回复: 0

Setup Factory 覆盖安装并且安装完成之后设置立即运行选项

[复制链接]
发表于 2019-2-21 15:59:54 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、覆盖安装
    当程序第二次安装时,覆盖安装原来的程序,还是原来的目录。
    1.首先要在第一次安装时将注册表写入电脑留下记录。步骤是第一次安装后,On Preload里设置注册表安装路径
  1. Registry.SetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation", SessionVar.Expand ("%AppFolder%"), REG_SZ);
复制代码
    2.在启动时,检测注册表里是否存在安装路径键值
  1.           local IsJMElectInstall = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo");
  2.   if(IsJMElectInstall == false)then
  3.          Registry.CreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo");  --注册键
  4.   end

  5.   local JEtInstallLocation = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation",true);--获取项目安装路径

  6.   if(JEtInstallLocation ~= "")then  --判断键值是否存在
  7.          local JMElectProductName = SessionVar.Expand ("%ProductName%");
  8.   Qid = Dialog.Message(JMElectProductName, String.Concat("检测到已安装该软件",",如果重装则不能改变安装目录。若要改变目录,请先卸载后再安装。确定要重装吗?"), MB_OKCANCEL, MB_ICONQUESTION, MB_DEFBUTTON1);
  9.    if(Qid == IDCANCEL) then  -- Qid为全局变量,其他窗体可用。
  10.           Application.Exit();                                         -- 如果不重装,则退出
  11.    else
  12.               local resultAppFolder = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation", true);  -- 获取原来的安装目录。
  13.               SessionVar.Set("%AppFolder%", resultAppFolder);   -- 将安装目录设置成原来的安装目录
  14.          end

  15.          end
复制代码
    3.设置某些界面自动跳转
        在"开始安装"和"选择安装文件夹"On Preload里
  1.        if Qid==1 then             -- 如果已有安装系统,跳过设定安装目录
  2.           Screen.Next();
  3.        end
复制代码
     以上操作基本上设置完成了。

二.安装完成设置立即运行选项
     将安装之后的界面删掉,自己做一个界面
     1.添加一个检测框,只留一个复选框,其它的移除掉。编辑信息,最终如下图
      1.jpg

    2.写代码实现效果
       在编辑On Next里写如下代码(JMElect.exe是你应用程序名称)
  1.       Screen.Next();
  2.       if (check01) then
  3.            Shell.Execute(SessionVar.Expand("%AppFolder%\\JMElect.exe"), "open", "", "%AppFolder%", SW_SHOWNORMAL);
  4.       end
复制代码
最后发布构件即可。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-4-19 16:45 , Processed in 0.218847 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表