警告
ジャーナル フック API は、Windows 11 以降ではサポートされておらず、今後のリリースで削除される予定です。 このため、代わりに、SendInput TextInput API を呼び出すように強くお勧めします。
ユーザーがアプリケーションのジャーナリング アクティビティを取り消したときにアプリケーションに投稿されます。 メッセージは、NULL ウィンドウ ハンドルと共に投稿されます。
#define WM_CANCELJOURNAL 0x004B
パラメーター
-
wParam を する
-
このパラメーターは使用されません。
-
lParam
-
このパラメーターは使用されません。
戻り値
型: void
このメッセージは値を返しません。 これは、ウィンドウ プロシージャではなく、アプリケーションのメイン ループまたは GetMessage フック プロシージャ内から処理されることを意図しています。
注釈
ジャーナル レコードと再生モードは、アプリケーションがユーザー入力を順番に記録または再生できるようにするシステムに課せられるモードです。 システムは、アプリケーションが JournalRecordProc または JournalPlaybackProcフック プロシージャインストールするときに、これらのモードに入ります。 システムがこれらのジャーナリング・モードのいずれかに入っている場合、アプリケーションは、入力キューから順番に入力を読み取る必要があります。 システムがジャーナル・モードの間にいずれかのアプリケーションが入力の読み取りを停止した場合、他のアプリケーションは強制的に待機します。
1 つのアプリケーションで無応答にできない堅牢なシステムを確保するために、ユーザーが Ctrl + Esc キーまたは Ctrl + Alt + DEL キーを押すと、システムはジャーナル処理を自動的に取り消します。 その後、システムはジャーナルフック・プロシージャーをフック解除し、ジャーナル・フックを設定するアプリケーションに、NULL ウィンドウ・ハンドルを含む WM_CANCELJOURNAL・メッセージをポストします。
WM_CANCELJOURNAL メッセージには NULL ウィンドウ ハンドルがあるため、ウィンドウ プロシージャにディスパッチできません。 アプリケーションが WM_CANCELJOURNAL メッセージを表示するには、2 つの方法があります。アプリケーションが独自のメイン ループで実行されている場合は、GetMessageを呼び出すか、PeekMessageをし、DispatchMessageを呼び出す間でメッセージをキャッチする必要があります。 アプリケーションが独自のメイン ループで実行されていない場合は、メッセージを監視する GetMsgProc フック プロシージャを設定する必要があります (SetWindowsHookEx の呼び出しWH_GETMESSAGE フックの種類を指定します)。
アプリケーションで WM_CANCELJOURNAL メッセージが表示されると、ユーザーが意図的にジャーナル レコードまたは再生モードを取り消し、システムがジャーナル レコードまたは再生フック プロシージャを既にフック解除している、という 2 つのことを想定できます。
上記のキーの組み合わせ (Ctrl + Esc または Ctrl + Alt + DEL) により、システムはジャーナル処理を取り消します。 いずれかのアプリケーションが応答しなくなった場合は、ユーザーに回復手段を提供します。 VK_CANCEL 仮想キー コード (通常は Ctrl + BREAK キーの組み合わせとして実装されます) は、ジャーナル レコード モードのアプリケーションが、ユーザーがジャーナリング アクティビティを取り消すシグナルとして監視する必要があります。 違いは、VK_CANCEL の監視は、ジャーナル アプリケーションの推奨される動作であるのに対し、Ctrl + Esc キーまたは Ctrl + Alt + DEL キーを押すと、ジャーナル アプリケーションの動作に関係なく、システムはジャーナル処理を取り消します。
必要条件
| 要件 | 価値 |
|---|---|
| サポートされる最小クライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
| サポートされている最小サーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
| ヘッダ |
|
こちらもご覧ください