Inno Setup如何在特定日期后自动卸载

时间:2016-04-25 10:12:38

标签: inno-setup

我有一些安装到目录C:\的文件夹和文件。 我想在一年后自动卸载或删除该文件夹和文件。

1 个答案:

答案 0 :(得分:2)

只需安排卸载在指定日期运行。

使用schtasks.exe工具。另请参阅How to add a scheduled task with Inno Setup

一个简单的例子:

[Run]
Filename: "schtasks.exe"; \
    Parameters: "/Create /RL HIGHEST /SC ONCE /SD ""{code:GetUninstallDate}"" /ST 00:00 /F /TN ""Uninstall My App"" /TR ""'{uninstallexe}' /verysilent"""; \
    Flags: runhidden

[UninstallRun]
Filename: "schtasks.exe"; \
    Parameters: "/Delete /F /TN ""Uninstall My App"""; \
    Flags: runhidden
[Code]

function GetUninstallDate(Param: string): string;
var
  Year, NextYear: string;
begin
  { schtasks needs localized date string }
  Result := GetDateTimeString('ddddd', #0, #0);
  { calculate the next year }
  Year := GetDateTimeString('yyyy', #0, #0);
  NextYear := IntToStr(StrToInt(Year) + 1);
  StringChange(Result, Year, NextYear);
end;