Setup Factory操作注册表

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);  --删除安装目录所有文件(卸载时可以操作)

猜你喜欢

转载自blog.csdn.net/jx_521/article/details/12048771