inno setup 自定义生成的卸载程序(执行RegDeleteKeyIncludingSubkeys API,DeleteFile,DelTree)

卸载时删除注册表
在[Code]段添加如下代码:

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);

begin

if CurUninstallStep = usUninstall then

if MsgBox('您是否要删除注册信息?', mbConfirmation, MB_YESNO) = IDYES then

RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\My Prog')

end;

使用时请将代码中红色部分替换为实际要保留的注册表信息。

如果想要 卸载时询问是否保留注册信息,可以把代码中蓝色部分改为 IDNO。

如果想要删除 文件或文件夹 ,可使用以下代码:

//删除 {app} 文件夹中的My Prog.exe

DeleteFile(ExpandConstant('{app}\My Prog.exe'));

//删除 {app} 文件夹及其中所有文件

DelTree(ExpandConstant('{app}'), True, True, True);

//删除 {app} 文件夹中的所有文件,但保留它本身

DelTree(ExpandConstant('{app}'), False, True, True);

 

//删除程序运行时的信息(整个目录删除)
function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean;

//删除自启动信息
function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;
————————————————
版权声明:本文为CSDN博主「事了了了」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/discovery8090/article/details/110423000

posted @ 2016-06-30 15:33  findumars  Views(431)  Comments(0Edit  收藏  举报