Setup Factory是一款非常好用的打包软件,其操作注册表也是非常简单的。
1.在注册表中创建“键”(Registry.CreateKey)
Registry.CreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectVersion");
2.判断是否存在指定的注册表键,返回true 或 false(Registry.DoesKeyExist)
local IsJMElectVersion = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectVersion");
3.返回指定注册表值的数据(Registry.GetValue)
local JEtInstallPath = Registry.GetValue(HKEY_LOCAL_MACHINE, "SOFTWARE\\JMElectVersion", "JMElectInstallPath",true);
if(JEtInstallPath ~= "")then --判断键值是否存在
--说明该键值存在
end
4.返回包含给定的会话变量的内容的字符串(SessionVar.Expand)
local JMElectProductName = SessionVar.Expand ("%ProductName%");
5.添加 (或连接) 两个字符串,并返回结果为一个新字符串(String.Concat)
String.Concat("检测到已安装该软件",",如果重装则不能改变安装目录。若要改变目录,请先卸载后再安装。确定要重装吗?");
6.显示带有消息信息的对话框(Dialog.Message)
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\\JMElectVersion", "JMElectInstallPath", true); -- 获取原来的安装目录,如果不设此项,则可从卸载键里分解。
SessionVar.Set("%AppFolder%", resultAppFolder); -- 将安装目录设置成原来的安装目录
end
end
7.运行可执行文件(File.Run)
result = File.Run(SessionVar.Expand("%TempLaunchFolder%\\dotNetFx40_Full_x86_x64.exe"), "", "", SW_SHOWNORMAL, true);
%TempLaunchFolder%是个原始文件路径
8.删除指定文件夹及文件夹所有文件(Folder.DeleteTree)
Folder.DeleteTree(SessionVar.Expand ("%AppFolder%"), nil); --删除安装目录所有文件(卸载时可以操作)