用Inno Setup打包小玩意,安装前卸载老版本方法
投递人 flash34 2010-6-9 13:14:33 闪秀 有552人阅读 我要评论(0)
字号:T|T
用Inno Setup给小玩意打包,发现很好用,比起Install Wise和InstallShield轻便多了。
以前没注意,一直改例子而已,今天想给游戏做个安装包,之前要卸载老版本,于是看了看Inno Setup自带的文档,发现可以直接用Pascal脚本,古老而亲切的Pascal啊。太好了,太好了。 顺便写出这完整的Code段:
[Code]
procedure InitializeWizard(); var ResultStr: String; ResultCode: Integer; begin
if RegQueryStringValue(HKLM, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\你的程序名_is1', 'UninstallString', ResultStr) then begin
ResultStr := RemoveQuotes(ResultStr);
Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end; end;
很简单吧,查找一下你的程序在注册表里的反安装信息,执行反安装程序即可。程序名就是你用Inno做安装的时候的AppName,这个名字可千万不要随着你程序的版本变化啊。
如果你想在执行旧版本的反安装的时候用静默模式,给Exec加上第二个参数“/VERYSILENT”即可。神不知鬼不觉把旧版本删了,然后装新版。不过这样做不太好,因为用户一旦在安装途中决定取消安装的时候,会发现老版本也没了。 NSIS 也和Inno Setuo一样,都能用Pascal。用它们做些小软件的安装包,足够了。 PS:为小学时苹果机上的BASIC以及Pascal,特地把代码的样式换成黑底绿字……

