我用新代码测试我的软件。
const MY_EXPIRY_DATE_STR = '20131112'; //Date format: yyyymmdd
function InitializeSetup(): Boolean;
var
ErrorCode: Integer;
begin
//If current date exceeds MY_EXPIRY_DATE_STR then return false and exit Installer.
result := CompareStr(GetDateTimeString('yyyymmdd', #0,#0), MY_EXPIRY_DATE_STR) <= 0;
if not result then
begin
MsgBox('Now it''s forbidden to install this program', mbError, MB_OK);
end
if (MsgBox('Autocad will compulsory closed,so please save your drawings and then press OK', mbConfirmation, MB_OK) = IDOK) then
begin
ShellExec('open', 'taskkill.exe', '/f /im acad.exe','', SW_HIDE, ewNoWait, ErrorCode);
ShellExec('open', 'tskill.exe', ' ACAD', '', SW_HIDE, ewNoWait, ErrorCode);
Result := True;
end
else
begin
Result := False;
end;
end;
问题是安装程序显示错误消息(现在禁止安装此程序)但它继续安装。我希望它退出安装程序。
答案 0 :(得分:3)
当你的失效条件得到满足时,你忘了从函数返回。
此
if not result then
begin
MsgBox('Now it''s forbidden to install this program', mbError, MB_OK);
end
应该是:
if not Result then
begin
MsgBox('Now it''s forbidden to install this program', mbError, MB_OK);
Exit;
end;
如果没有Exit
,则会执行以下语句,并可能再次将Result
设置为“True”。
另请注意格式。如果你做对了,你很可能不会问这个问题。