2016-04-24 22 views
-1

新しいコードでソフトウェアをテストします。Inno Setup:1年間有効なアプリケーションを作成します

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

時計を1年後に設定しますか? –

答えて

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を設定する可能性が実行されます。

フォーマットにも注意してください。もしあなたが正しいとしたら、あなたはこの質問をしていないという良いチャンスがあります。

+0

これは素晴らしい仕事ですSertac Akyuz.but私は別の質問があります。この日までにソフトウェアには何が起こるのでしょうか?私はそれが自己アンインストールしたい。 –

+1

@モハメッド - それはあなたが別に質問したいと思う別の質問です。しかし、私はインストーラがそれだけでそれを行うことはできないと言うことができます、あなたのプログラムが期限切れになっても実行されません。 IMOインストーラはこれに全く何も参加すべきではありません。プログラムはチェックして実行する必要があります。ユーザーはアンインストールを選択できます。 –

+0

申し訳ありませんSertac Akyuz私はプログラミングで全く新しいですし、数日前にinno setupを使用しています。もう一度あなたの助けに感謝します。私は新しい質問をします。私のソフトウェアに、Autocadのためのいくつかのフォルダとファイルをコピーしてコピーすることに注意してください。私はinno setupを使ってthat.soを実行するので、私は1年後にアンインストールしたいのです –

関連する問題