timeadjx

たかはしもとのぶ 2005.02.20

このコマンドは、SetSystemTimeAdjustment() 関数を発行することで、システムの時刻を後戻りせずにゆっくり進めたり、早く進めたりするためのコマンドです。

ファイルの入手

このファイルの最新版は以下の URL で入手することができます。

コマンドの利用方法

実行例を以下に示します。

  1. 現在の設定を表示する
    C:\>timeadjx.exe get
    GetSystemTimeAdjustment() 呼出し中...
    割込み発生時の加算時刻: 100144 (100ns単位)
    ハードウェア割込み間隔: 100144 (100ns単位)
    定期的な時刻調整      : 無効
    自動的な時刻補正      : 有効
      (自動的な時刻補正の詳細は、KB232488を参照してください)
    
  2. 割込み発生時の加算時刻を設定する(自動的に定期的な時刻調整が有効になります)
    C:\>timeadjx.exe set 200288
    SetSystemTimeAdjustment() 呼び出し中...
    割込み発生時の加算時刻: 200288 (100ns単位)
    定期的な時刻調整      : 有効
    自動的な時刻補正      : 無効
      (自動的な時刻補正の詳細は、KB232488を参照してください)
    
  3. 自動的な時刻補正を有効にする(定期的な時刻調整は同時に無効となります)
    C:\>timeadjx.exe set 0
    SetSystemTimeAdjustment() 呼び出し中...
    割込み発生時の加算時刻: 0 (100ns単位)
    定期的な時刻調整      : 無効
    自動的な時刻補正      : 有効
      (自動的な時刻補正の詳細は、KB232488を参照してください)
    

FAQ

  1. 質問: 「自動的な時刻補正」ですが、表示の論理が逆になっていませんでしょうか?MSDNの説明では、SetSystemTimeAdjustment のlpTimeAdjustmentDisabled は、定期的な時刻調整がOFFの時に真を取ると書かかれていますが、timeadjx のソースでは、それが逆になっているようです。

    回答: 「自動的な時刻補正」とは[NT]Windows における日付および時刻の管理方法に記載のある「自動的な時刻補正」の状態を示すもので、GetSystemTimeAdjustment関数のlpTimeAdjustmentDisabledパラメータで説明されている「定期的な時刻調整」の状態を示すものではありません。そのため、表示の論理は間違っていないのですが、わかりにくいので、timeadjx 0.2ではその旨表示を追記しました。

更新履歴


Copyright (C) 1998-2009 TAKAHASHI, Motonobu
Last update: 2005-02-20 12:24:07 JST
webmaster@monyo.com