在“更改或删除程序”内添加自己的卸载入口

一般情况下,我们的安装程序都是使用windows的安装管理接口实现的,它会自动生成卸载程序并在控制面板中的“更改或删除程序”中添加一个删除入口。但是有时候我们可能需要自己通过代码添加自己的删除入口,该怎么办才能让我们的程序也能通过“更改或删除程序”来卸载呢?

答案是:修改注册表。

在注册表HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Uninstall

或者      HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Uninstall

下添加一个属于我们程序的一个项,然后在项中设置一些卸载需要的信息,其中2个键是必须的:

DisplayName:在“更改或删除程序”列表中显示的名称,若没有该值,将不会被列出。

UninstallString:卸载程序的绝对路径。当用户点击卸载时,改程序将被调用。

其他可选键可以提供更丰富的信息,根据需要来设置。

另外,当我们的卸载程序被调用时,“更改或删除程序”处于消息阻塞状态。当我们的程序结束后,“更改或删除程序”根据卸载程序主线程的返回值来做不同的动作:

0:代表卸载成功,“更改或删除程序”将会查看该项对应的注册表信息决定是否从列表中删除该项。

1:代表失败,“更改或删除程序”不从列表中删除该项。

其他值:没有试过,可能跟1结果相同。

 

另外发现一个有趣的事情,一次失误,把本应该是字符串类型的键DisplayName、UninstallString设置成了多字符串,结果无论自己的卸载程序返回什么值,“更改或删除程序”都会从列表中把删除项删除。但是这种情况下如果注册表中信息没有被删除的话,刷新“更改或删除程序”之后,刚才消失的项又被列出了。不知原因是什么。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值