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