Written in Japanese(UTF-8)
2021.11.18
INASOFT


/トップ/マウスふるふる ダウンロード/WebHelp/ヘルプトップ


動作原理で登場した(マウスふるふるが利用している、ヘルプ中で登場する)主なWindows API解説

ShutdownBlockReasonCreate

OSに対してシステムをシャットダウンできないことを示し、システムのシャットダウンが開始された場合にユーザーに表示される理由文字列を設定します。
Windows XPまでは、WM_QUERYENDSESSIONにreturn 0;するだけでOS終了拒否できましたが、Windows Vista以降でOS終了拒否をするには、WM_QUERYENDSESSIONにreturn 0;するだけでなくShutdownBlockReasonCreate() APIで拒否理由をOSに伝える必要があります。

この関数は、Windows Vista以降で呼び出すことができます。

BOOL WINAPI ShutdownBlockReasonCreate(HWND hWnd, LPCWSTR pwszReason);


パラメータ


戻り値

0以外 … 成功。
0 … 失敗。拡張エラー情報を取得するには、GetLastError() APIを使用すること。


解説

このAPIは、hWndで指定したウィンドウを作成したスレッドからのみ呼び出せます。それ以外の場合はこのAPIは失敗し、エラーコードはERROR_ACCESS_DENIEDになります。

アプリケーションは、CDやDVDの書き込みなど、中断できない操作を開始するときにこのAPIを呼び出す必要があります。操作が完了したら、ShutdownBlockReasonDestroy() API呼び出して、システムをシャットダウンできることを示すようにしてください。

ユーザーは通常、システムをシャットダウンするときに急いでいるため、システムによって表示されるシャットダウンの理由を確認するのに数秒しか費やさない場合があります。したがって、理由文字列は短く明確であることが重要です。例えば「CD書き込みが進行中のため、このアプリケーションはシステムのシャットダウンをブロックしています。シャットダウンしないでください。」よりも「CDの書き込みが進行中です。」の方が優れています。

とはいえ、Windows 10以降では、ユーザーの意図でシャットダウンするよりも、強制的なWindows Updateの適用で、ユーザーの意図に反してシャットダウンされることが多いように思います。そういった場合にも、このAPIの活用が見込まれます。

このAPIで設定した理由文字列は、ShutdownBlockReasonQuery() APIで取り出せます。


サンプル

OS終了拒絶方法


 マウスふるふるが利用しているWindows API解説へ
 目次へ
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は、右上の作成日付の時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。

■このページに関するご意見をお待ちしております → フィードバックページ

/トップ/マウスふるふる ダウンロード/WebHelp/ヘルプトップ