1

インストール時に現在の日付を確認する方法を教えてください。

インストーラー スクリプトに特定の日付を埋め込む必要があり、現在の日付 (Windows ホストから取得) がハードコードされた (埋め込まれた) 日付よりも大きい場合は、ユーザーに通知してインストール プロセスを停止する必要があります。

ありがとうございました

4

2 に答える 2

1

Windows API を使用してシステムの日付/時刻を取得する必要があります。たとえば、GetLocalTime関数を使用して、インストーラーのどこかにハードコードされた日付と比較する必要があります。たとえば、初期化中に、この例で行ったように:

{言語:パスカル}

[Code]
type
  TSystemTime = record
    wYear: Word;
    wMonth: Word;
    wDayOfWeek: Word;
    wDay: Word;
    wHour: Word;
    wMinute: Word;
    wSecond: Word;
    wMilliseconds: Word;
  end;

procedure GetLocalTime(var lpSystemTime: TSystemTime);  external 'GetLocalTime@kernel32.dll';

function DateToInt(ATime: TSystemTime): Cardinal;
begin
  //Converts dates to a integer with the format YYYYMMDD, 
  //which is easy to understand and directly comparable
  Result := ATime.wYear * 10000 + aTime.wMonth * 100 + aTime.wDay;
end;


function InitializeSetup(): Boolean;
var
  LocTime: TSystemTime;
begin
  GetLocalTime(LocTime);
  if DateToInt(LocTime) > 20121001 then //(10/1/2012)
  begin
    Result := False;
    MsgBox('Now it''s forbidden to install this program', mbError, MB_OK);
  end
  else
  begin
    Result := True;
  end;
end;
于 2012-11-04T20:46:00.203 に答える