Japanese Calendar Test 1.0.0 (和暦テスト 1.0.0)

Japanese Calendar Test Tool (和暦テストツール) 1.0.0 のダウンロードページです。

上記の”Verify CAPTCHA to Download”内の”DOWNLOAD”リンクからダウンロードできます。もし、”Verify CAPTCHA to Download”内に、”私はロボットではありません”と表示されている場合は、チェックを入れて、指示のある画像を選択してください。画像を正しく選択するとダウンロードできます。

このテストツールについて

WIN32 APIを使った、日付データから和暦テキスト文字列の相互変換に関する動作の確認ができます。このツールは、Nativeアプリなので.NET frameworkのAPIの動作確認はできません。

このバージョンについて

このツールの1回目のリリースです。このバージョンでは、以下の機能を実装しました。

  • 日付データから日付テキスト文字列に変換するAPIの動作確認
    • GetDateFormat()
    • VarBstrFromDate()
  • 日付テキスト文字列から日付データへ変換するAPIの動作確認
    • VarDateFromStr()

下記がこのツールのメイン画面です。

Japanese Calendar Test 1.0.0 – メイン画面

機能の説明

「日付→文字列」グループボックス領域

この領域は、日付データから日付テキスト文字列へ変換するWin32 APIをテストできます。

テストできるAPIは、GetDataFormat()VarBstrFromDate()です。

中央の列は「今日の日付」を日付テキスト文字列へ変換して表示します。右側の列は「日付選択コントロールで選択した日付」を日付テキスト文字列へ変換して表示します。ここで選択する日付で、明治、大正、昭和、平成、令和に相当する年月日を選択すると、それぞれの和暦への変換のテストができます。

GetDataFormat()

このWin32 APIは下記のシグネチャーで定義されています。

int GetDateFormat(
  _In_ LCID Locale,
  _In_ DWORD dwFlags,
  _In_opt_ const SYSTEMTIME *lpDate,
  _In_opt_ LPCTSTR lpFormat,
  _Out_opt_ LPTSTR lpDateStr,
  _In_ int cchDate
);

第1引数Localeには、以下の固定値を設定しています。これは、日本ロケールを表します。

  • MAKELCID(LANG_JAPANESE, SORT_DEFAULT)

第2引数dwFlagsには、4つのバリエーションで実行しています。

  • DATE_SHORTDATE
  • DATE_LONGDATE
  • DATE_SHORTDATE | DATE_USE_ALT_CALENDAR
  • DATE_LONGDATE | DATE_USE_ALT_CALENDAR

前者2つは、通常のカレンダー、後者二つは代替カレンダー(代替歴)を指定しています。

日本ロケールの場合、Windowsの既定値は、前者二つが西暦、後者二つが和暦となります。ただし、ユーザー設定により既定値以外のものになることもあります。

VarBstrFromDate()

このWin32 APIは下記のシグネチャーで定義されています。

HRESULT VarBstrFromDate(
  _In_ DATE dateIn,
  _In_ LCID lcid,
  _In_ ULONG dwFlags,
  _Out_ BSTR *pbstrOut
);

第2引数Localeには、以下の固定値を設定しています。これは、日本ロケールを表します。

  • MAKELCID(LANG_JAPANESE, SORT_DEFAULT)

第3引数dwFlagsには、以下の固定値を設定しています。これは、時間を対象とせず、日付のみを対象とすることを表します。

  • VAR_DATEVALUEONLY

「文字列→日付」グループボックス領域

この領域は、日付データから日付テキスト文字列へ変換するWin32 APIをテストできます。

テストできるAPIは、VarDateFromStr()です。

左側のエディットコンボボックスの値をWin32 APIで解釈して、解釈した結果を右側に西暦で表示します。括弧の中は、解釈した日付データを再度GetDataFormat()で和暦に変換した文字列となります。

エディットコンボボックスで日付文字列を指定します。値は、プルダウンリストから文字列を選んで指定してもよいですし、文字列を直接入力してもよいです。プルダウンリストには、慶応以降の和暦の始まりと終わりを列挙してあります。

VarDateFromStr()

このWin32 APIは下記のシグネチャーで定義されています。

HRESULT VarDateFromStr(
  _In_ LPCOLESTR strIn,
  _In_ LCID lcid,
  _In_ ULONG dwFlags,
  _Out_ DATE *pdateOut
);

第2引数Localeには、以下の固定値を設定しています。これは、日本ロケールを表します。

  • MAKELCID(LANG_JAPANESE, SORT_DEFAULT)

第3引数dwFlagsには、以下の固定値を設定しています。これは、時間を対象とせず、日付のみを対象とすることを表します。

  • VAR_DATEVALUEONLY

このテストツールの説明は以上です。

Microsoft Ajax Minifier 5.14

Microsoft Ajax Minifier 5.14 のダウンロードページです。

Filename: AjaxMinSetup_5.14.msi
Filesize: 1,474,560 バイト
MD5: f290396dc1e430781d647a2f916dca97
SHA1: d8c0359e82fd1a329a1859df29a15f36413a3db3

上記の”Verify CAPTCHA to Download”内の”DOWNLOAD”リンクからダウンロードできます。もし、”Verify CAPTCHA to Download”内に、”私はロボットではありません”と表示されている場合は、チェックを入れて、指示のある画像を選択してください。画像を正しく選択するとダウンロードできます。

Microsoft Ajax Minifierの詳細については、こちらを参照してください。

デスクトップアプリのリスタートマネージャー6(Windows 10のサインアウトの挙動の変更)

Windows 10 1709で、サインアウト(ログオフ)のデフォルトの挙動が変更されました。アプリは常にリスタートマネージャーによる再起動の対象となります。この仕様変更でアプリはどのような影響を受けるのでしょうか?

“デスクトップアプリのリスタートマネージャー6(Windows 10のサインアウトの挙動の変更)” の続きを読む

デスクトップアプリのリスタートマネージャー5(テストツール)

前回は、File Package Appで作成したパッケージのリスタートマネージャーに関する動作確認をしました。この投稿を作成していて、すべての振る舞いを簡単に確認できるツールがあったらと思いました。そこでテストツールを作成しました。

“デスクトップアプリのリスタートマネージャー5(テストツール)” の続きを読む

Restart Manager Test 1.0.4

Restart Manager Test Tool 1.0.4 のダウンロードページです。

上記の”Verify CAPTCHA to Download”内の”DOWNLOAD”リンクからダウンロードできます。もし、”Verify CAPTCHA to Download”内に、”私はロボットではありません”と表示されている場合は、チェックを入れて、指示のある画像を選択してください。画像を正しく選択するとダウンロードできます。

このバージョンについて

このツールの2回目のリリースです。このバージョンでは、以下の機能を実装しました。

  • 関連情報の表示
    • プロセスIDを表示
    • ログファイル名の表示
  • ウィンドウのリサイズの最小サイズの調整

リスタートマネージャーに関する動作の確認ができます。

Restart Manager Test 1.0.4 – メイン画面

機能の説明

メイン画面 – 左上側

この領域のボタンは、Restart Manager関連のAPIを個別に呼び出してテストできます。

RegisterApplicationRestart()

Windows Vistaで導入されたRegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録をします。

RegisterApplicationRestart(L"/restart ", RESTART_NO_CRASH | RESTART_NO_HANG);

上記の引数で呼び出します。Windows XP上で実行された場合は何もしません。

UnregisterApplicationRestart()

Windows Vistaで導入されたUnegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録を解除します。

UnregisterApplicationRestart();

このAPIは引数がないため、単純に呼び出すのみです。Windows XP上で実行された場合は何もしません。

ShutdownBlockReasonCreate()

Windows Vistaで導入されたShutdownBlockReasonCreate()を呼び出し、シャットダウンをブロックする理由を登録をします。

RegisterApplicationRestart(hDialogWnd, pszReasonW);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。pszReasonWは、ボタンの下のエディットボックスに設定された文字列が設定されます。Windows XP上で実行された場合は何もしません。

ShutdownBlockReasonDestroy()

Windows Vistaで導入されたShutdownBlockReasonDestroy()を呼び出し、シャットダウンをブロックする理由の登録を解除します。

RegisterApplicationRestart(hDialogWnd);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。Windows XP上で実行された場合は何もしません。

メイン画面 – 右上側

この領域のチェックボックスは、このツールのメイン画面(ダイアログ)がWM_QUERYENDSESSIONメッセージを受信したときに行う動作を設定できます。複数のチェックボックスをチェックした場合は、WM_QUERYENDSESSIONメッセージのメッセージハンドラ内では、上から順番に処理されます。

Call RegisterApplicationRestart()

Windows Vistaで導入されたRegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録をします。

RegisterApplicationRestart(L"/restart ", RESTART_NO_CRASH | RESTART_NO_HANG);

上記の引数で呼び出します。Windows XP上で実行された場合は何もしません。

Call UnregisterApplicationRestart()

Windows Vistaで導入されたUnegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録を解除します。

UnregisterApplicationRestart();

このAPIは引数がないため、単純に呼び出すのみです。Windows XP上で実行された場合は何もしません。

Call ShutdownBlockReasonCreate()

Windows Vistaで導入されたShutdownBlockReasonCreate()を呼び出し、シャットダウンをブロックする理由を登録をします。

RegisterApplicationRestart(hDialogWnd, pszReasonW);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。pszReasonWは、左側の領域のエディットボックスに設定された文字列が設定されます。Windows XP上で実行された場合は何もしません。

Wait 20 sec.

メッセージハンドラ内で20秒間待機します。Windows Vista以降では、アプリはWM_QUERYENDSESSIONメッセージに5秒以内に応答しなければいけないので、そのテストができます。具体的には、チェックをした場合にSleep()を呼び出します。

Sleep(20000);

上記の引数で呼び出します。

Return false

WM_QUERYENDSESSIONメッセージハンドラーの戻り値を決定します。チェックされていない場合は、trueを戻り値とします。チェックがされていた場合は、falseを戻り値とします。trueはアプリが終了できる状態であることを表します。falseはアプリがシャットダウンを拒否したことに相当します。

メイン画面 – 下側

Result

右側のエディットボックスは最後に実行したAPIのエラーコードが設定されます。下側の複数行のエディットボックスは、各APIを呼び出した結果や、リスタートマネージャーに関するウィンドウメッセージを受信したタイミングの記録が表示されます。

Ceate message log file

チェックしておくと、各APIを呼び出した結果や、リスタートマネージャーに関するウィンドウメッセージを受信したタイミングの記録をファイルに出力します。基本的に画面内に表示されている履歴と同じものをファイルに出力します。出力ファイルは、EXEファイルと同じフォルダーに作成されます。ファイル名はEXEファイル名に拡張子”.log”を追加した名前です。

Log Filename

ここに表示される名前はExeファイルと同じフォルダーに作成するログファイルの名前です。

Process ID

このツールのプロセスIDです。RmLogoTest.exeでテストするときに容易にプロセスIDを確認できるようにツールのプロセスIDを表示しています。


このアプリのトップページに戻る

Restart Manager Test 1.0.3

より新しいバージョンが公開されたのでこのページからはダウンロードしないでください。このページを参照してください。

Restart Manager Test Tool 1.0.3 のダウンロードページです。

上記の”Verify CAPTCHA to Download”内の”DOWNLOAD”リンクからダウンロードできます。もし、”Verify CAPTCHA to Download”内に、”私はロボットではありません”と表示されている場合は、チェックを入れて、指示のある画像を選択してください。画像を正しく選択するとダウンロードできます。

このバージョンについて

このツールの1回目のリリースです。このバージョンでは、以下の機能を実装しました。

  • リスタートマネージャーAPIのテスト機能
    • リスタートマネージャーにアプリの再起動の登録 (RegisterApplicationRestart)
    • リスタートマネージャーにアプリの再起動の登録解除 (UnregisterApplicationRestart)
    • シャットダウンブロックの理由の登録 (ShutdownBlockReasonCreate)
    • シャットダウンブロックの理由の登録解除 (ShutdownBlockReasonDestroy)
  • WM_QUERYENDSESSIONを受信した時の処理のテスト機能
    • リスタートマネージャーにアプリの再起動の登録
    • リスタートマネージャーにアプリの再起動の登録解除
    • シャットダウンブロックの理由の登録
    • 一定時間の待機
    • 戻り値の設定
  • ログファイルの作成機能

リスタートマネージャーに関する動作の確認ができます。

Restart Manager Test 1.0.3 – メイン画面

機能の説明

メイン画面 – 左上側

この領域のボタンは、Restart Manager関連のAPIを個別に呼び出してテストできます。

RegisterApplicationRestart()

Windows Vistaで導入されたRegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録をします。

RegisterApplicationRestart(L"/restart ", RESTART_NO_CRASH | RESTART_NO_HANG);

上記の引数で呼び出します。Windows XP上で実行された場合は何もしません。

UnregisterApplicationRestart()

Windows Vistaで導入されたUnegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録を解除します。

UnregisterApplicationRestart();

このAPIは引数がないため、単純に呼び出すのみです。Windows XP上で実行された場合は何もしません。

ShutdownBlockReasonCreate()

Windows Vistaで導入されたShutdownBlockReasonCreate()を呼び出し、シャットダウンをブロックする理由を登録をします。

RegisterApplicationRestart(hDialogWnd, pszReasonW);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。pszReasonWは、ボタンの下のエディットボックスに設定された文字列が設定されます。Windows XP上で実行された場合は何もしません。

ShutdownBlockReasonDestroy()

Windows Vistaで導入されたShutdownBlockReasonDestroy()を呼び出し、シャットダウンをブロックする理由の登録を解除します。

RegisterApplicationRestart(hDialogWnd);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。Windows XP上で実行された場合は何もしません。

メイン画面 – 右上側

この領域のチェックボックスは、このツールのメイン画面(ダイアログ)がWM_QUERYENDSESSIONメッセージを受信したときに行う動作を設定できます。複数のチェックボックスをチェックした場合は、WM_QUERYENDSESSIONメッセージのメッセージハンドラ内では、上から順番に処理されます。

Call RegisterApplicationRestart()

Windows Vistaで導入されたRegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録をします。

RegisterApplicationRestart(L"/restart ", RESTART_NO_CRASH | RESTART_NO_HANG);

上記の引数で呼び出します。Windows XP上で実行された場合は何もしません。

Call UnregisterApplicationRestart()

Windows Vistaで導入されたUnegisterApplicationRestart()を呼び出し、アプリ(ツール自身)の再起動の登録を解除します。

UnregisterApplicationRestart();

このAPIは引数がないため、単純に呼び出すのみです。Windows XP上で実行された場合は何もしません。

Call ShutdownBlockReasonCreate()

Windows Vistaで導入されたShutdownBlockReasonCreate()を呼び出し、シャットダウンをブロックする理由を登録をします。

RegisterApplicationRestart(hDialogWnd, pszReasonW);

上記の引数で呼び出します。hDialogWndはこのツールのメインウィンドウのウィンドウハンドルが設定されます。pszReasonWは、左側の領域のエディットボックスに設定された文字列が設定されます。Windows XP上で実行された場合は何もしません。

Wait 20 sec.

メッセージハンドラ内で20秒間待機します。Windows Vista以降では、アプリはWM_QUERYENDSESSIONメッセージに5秒以内に応答しなければいけないので、そのテストができます。具体的には、チェックをした場合にSleep()を呼び出します。

Sleep(20000);

上記の引数で呼び出します。

Return false

WM_QUERYENDSESSIONメッセージハンドラーの戻り値を決定します。チェックされていない場合は、trueを戻り値とします。チェックがされていた場合は、falseを戻り値とします。trueはアプリが終了できる状態であることを表します。falseはアプリがシャットダウンを拒否したことに相当します。

メイン画面 – 下側

Result

右側のエディットボックスは最後に実行したAPIのエラーコードが設定されます。下側の複数行のエディットボックスは、各APIを呼び出した結果や、リスタートマネージャーに関するウィンドウメッセージを受信したタイミングの記録が表示されます。

Ceate message log file

チェックしておくと、各APIを呼び出した結果や、リスタートマネージャーに関するウィンドウメッセージを受信したタイミングの記録をファイルに出力します。基本的に画面内に表示されている履歴と同じものをファイルに出力します。出力ファイルは、EXEファイルと同じ場所に作成されます。ファイル名はEXEファイル名に拡張子”.log”を追加した名前です。


このアプリのトップページに戻る