NSIS:在注册表中记录安装路径以便重装或升级时读取

简介: 原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬。第1步:在“安装目录选择页面”前面加入以下代码:  1 !define MUI_PAGE_CUSTOMFUNCTION_show Pageshow 第2步:读取注册表中关于安装路径的键值,如果没有,就使用默认路径。

原文 NSIS:在注册表中记录安装路径以便重装或升级时读取

在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬。

第1步:在“安装目录选择页面”前面加入以下代码:
 

1 !define MUI_PAGE_CUSTOMFUNCTION_show Pageshow


第2步:读取注册表中关于安装路径的键值,如果没有,就使用默认路径。


1 InstallDirRegKey HKCU “Software\eBook Workshop” “”

第3步:在主区段中把安装路径写入注册表。

1 WriteRegStr HKCU “Software\eBook Workshop” “” $INSTDIR

第4步:在卸载区段删除注册表中安装路径的键值。

1 DeleteRegKey /ifempty HKCU “Software\eBook Workshop”

第5步:判断如果安装过,禁止修改安装路径。

01 Function Pageshow
02   ReadRegStr $0 HKCU "Software\eBook Workshop" ""
03   ${If} $0 == ""
04   ${Else}
05   ;禁用浏览按钮
06   FindWindow $0 "#32770" "" $HWNDPARENT
07   GetDlgItem $0 $0 1001
08   EnableWindow $0 0
09   ;禁用编辑的目录
10   FindWindow $0 "#32770" "" $HWNDPARENT
11   GetDlgItem $0 $0 1019
12   EnableWindow $0 0
13   FindWindow $0 "#32770" "" $HWNDPARENT
14   GetDlgItem $0 $0 1006
15   SendMessage $0 ${WM_SETTEXT} 0 "STR:您已经安装过 ${PRODUCT_NAME} ,现在进行的覆盖安装不能更改安装目录,如果您需要更改安装目录,请先卸载已经安装的版本之后再运行此安装程序!"
16   ${EndIf}
17 FunctionEnd


轻狂注:以上代码中的eBook Workshop要替换为你软件的名称或特定标识文字。

 

目录
相关文章
|
5月前
|
Windows Python
windows安装CNTK记录
windows安装CNTK记录
windows安装CNTK记录
|
5月前
|
Windows
卸载应用后,删除安装根目录下的所有文件,提示已在另一进程打开,在资源管理器进程中找不到该程序的解决
卸载应用后,删除安装根目录下的所有文件,提示已在另一进程打开,在资源管理器进程中找不到该程序的解决
44 0
1分钟解决VS每次运行都显示“正在还原nuget程序包”问题
1分钟解决VS每次运行都显示“正在还原nuget程序包”问题
|
11月前
|
数据安全/隐私保护
记录一下百度网盘双击无法正常启动以及解决办法
记录一下百度网盘双击无法正常启动以及解决办法
1089 0
|
数据安全/隐私保护 iOS开发 MacOS
【解决方案】MacOS遇到“xxx”已损坏,无法打开。您应该将它移到废纸篓……
【解决方案】MacOS遇到“xxx”已损坏,无法打开。您应该将它移到废纸篓……
490 0
【解决方案】MacOS遇到“xxx”已损坏,无法打开。您应该将它移到废纸篓……
|
Oracle Java 关系型数据库
修改注册表解决JDK目录更改后命令无效的问题
修改注册表解决JDK目录更改后命令无效的问题
155 0
修改注册表解决JDK目录更改后命令无效的问题
|
数据安全/隐私保护 Python Windows
安装无法继续,因为一个必需文件已损坏或不可用,请从原始源光盘活下载位置重新运行安装程序
了解安装无法继续,因为一个必需文件已损坏或不可用,请从原始源光盘活下载位置重新运行安装程序
827 0
|
安全
Win10 64位 win7 64位 驱动安装不上,提示 文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡改
Win10 64位 win7 64位 驱动安装不上,提示 文件的哈希值不在指定的目录文件中。此文件可能已损坏或被篡改如何解决
623 0
|
Windows
Windows 技术篇 - win10复制文件或文件夹时出错,提示“文件或目录损坏且无法读取“问题解决。windows驱动器、磁盘修复方法
Windows 技术篇 - win10复制文件或文件夹时出错,提示“文件或目录损坏且无法读取“问题解决。windows驱动器、磁盘修复方法
414 0
Windows 技术篇 - win10复制文件或文件夹时出错,提示“文件或目录损坏且无法读取“问题解决。windows驱动器、磁盘修复方法