2016-04-24 74 views
-1

我使用新代碼測試我的軟件。Inno Setup:創建一年有效的應用程序

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' 的可能性執行。

另請注意格式。如果你說得對,那麼很有可能你不會問這個問題。

+0

這是工作非常感謝Sertac Akyuz.but我有另一個問題。如果我設置日期我想要什麼。到達此日期後,軟件會發生什麼情況。我希望它自己卸載它。 –

+1

@穆罕默德 - 這是一個不同的問題,你想單獨問。不過,我可以告訴安裝程序本身無法做到這一點,當程序過期時它甚至不會運行。海事組織安裝程序不應該有任何部分,程序應該檢查並拒絕運行 - 然後用戶可以選擇卸載它。 –

+0

對不起Sertac Akyuz我是幾天前在編程和使用inno安裝程序全新的。謝謝你的幫助,我會提出一個新的問題。注意我的軟件只是複製並通過Autocad的一些文件夾和文件。我使用inno setup做到這一點。所以我想在一年後卸載它 –

相關問題