正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一、覆盖安装
当程序第二次安装时,覆盖安装原来的程序,还是原来的目录。
1.首先要在第一次安装时将注册表写入电脑留下记录。步骤是第一次安装后,On Preload里设置注册表安装路径- Registry.SetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation", SessionVar.Expand ("%AppFolder%"), REG_SZ);
复制代码 2.在启动时,检测注册表里是否存在安装路径键值
- local IsJMElectInstall = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo");
- if(IsJMElectInstall == false)then
- Registry.CreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo"); --注册键
- end
- local JEtInstallLocation = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation",true);--获取项目安装路径
- if(JEtInstallLocation ~= "")then --判断键值是否存在
- local JMElectProductName = SessionVar.Expand ("%ProductName%");
- Qid = Dialog.Message(JMElectProductName, String.Concat("检测到已安装该软件",",如果重装则不能改变安装目录。若要改变目录,请先卸载后再安装。确定要重装吗?"), MB_OKCANCEL, MB_ICONQUESTION, MB_DEFBUTTON1);
- if(Qid == IDCANCEL) then -- Qid为全局变量,其他窗体可用。
- Application.Exit(); -- 如果不重装,则退出
- else
- local resultAppFolder = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectInstallInfo", "JMElectInstallLocation", true); -- 获取原来的安装目录。
- SessionVar.Set("%AppFolder%", resultAppFolder); -- 将安装目录设置成原来的安装目录
- end
- end
复制代码 3.设置某些界面自动跳转
在"开始安装"和"选择安装文件夹"On Preload里
- if Qid==1 then -- 如果已有安装系统,跳过设定安装目录
- Screen.Next();
- end
复制代码 以上操作基本上设置完成了。
二.安装完成设置立即运行选项
将安装之后的界面删掉,自己做一个界面
1.添加一个检测框,只留一个复选框,其它的移除掉。编辑信息,最终如下图
2.写代码实现效果
在编辑On Next里写如下代码(JMElect.exe是你应用程序名称)
- Screen.Next();
- if (check01) then
- Shell.Execute(SessionVar.Expand("%AppFolder%\\JMElect.exe"), "open", "", "%AppFolder%", SW_SHOWNORMAL);
- end
复制代码 最后发布构件即可。
|