今天用InstallShield打包了一个安装程序,安装顺利完成了,但是当我去控制面板准备卸载时,发现我的程序没有详细的信息,正常的软件信息如下图:
而我的程序没有发布者,大小和版本,也没有图标,于是上网搜了一下,发现这些信息应该在安装的时候就写到注册表里,系统才会自动读取出来,这就是Uninstall注册表项。
注册表所在的位置:
64位:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
32位:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
一般都会以程序的GUID作为子项,然后里面会有更详细的值,如下图:
常用的项如下:
InstallLocation (字符串)- 安装目录 ($INSTDIR)
DisplayIcon (字符串)-将要显示于你的应用程序名称旁边的图标的路径,文件名和索引(一般写主程序的路径,原因待了解)。
Publisher (字符串)- 发布者(或公司)的名称
ModifyPath (字符串)- 应用程序的修复程序的路径和文件名。
InstallSource (字符串)- 应用程序的安装路径。
ProductID (字符串)- 应用程序的产品 ID。
RegOwner (字符串)- 应用程序的注册拥有者。
RegCompany (字符串)- 应用程序的注册公司。
HelpLink (字符串)- 技术支持的网站链接。
HelpTelephone (字符串)- 技术支持电话。
URLUpdateInfo (字符串)- 应用程序的在线更新网址链接。
URLInfoAbout (字符串)- 应用程序的主页链接。
DisplayVersion (字符串)- 应用程序的显示版本。
VersionMajor (DWORD)- 应用程序的主版本号。
VersionMinor (DWORD)- 应用程序的副版本号。
NoModify (DWORD)- 1 (如果卸载程序没有修改应用程序的选项)
NoRepair (DWORD)- 1 (如果卸载程序没有修复安装程序的选项)
如果“NoModify”和“NoRepair”都被设为 1,那么按钮将会用“删除”代替“修改/删除”。
所以你只需在你安装程序时写入上述注册表就可以正常的显示卸载列表里的详细信息了。