VMware Workstationは何かがかなりクール行います防ぐWindowsのシャットダウン
通常は、私たちは「このプログラムは、Windowsを防止している参照してくださいね新しい「1仮想マシンが使用中」ではなく、「シャットダウンから」メッセージが表示されます。
これはどのようにVMWareが行いますか?私はGoogle上でAPIを見つけることができませんでした。
VMware Workstationは何かがかなりクール行います防ぐWindowsのシャットダウン
通常は、私たちは「このプログラムは、Windowsを防止している参照してくださいね新しい「1仮想マシンが使用中」ではなく、「シャットダウンから」メッセージが表示されます。
これはどのようにVMWareが行いますか?私はGoogle上でAPIを見つけることができませんでした。
Vista hereで導入された変更についてのすべてを読むことができます。あなたは本当にその記事を非常に慎重に読むべきです。
あなたが探しているAPIはShutdownBlockReasonCreate
,ShutdownBlockReasonDestroy
、ShutdownBlockReasonQuery
です。これらのAPIはVista/2008サーバでのみ使用可能です。 2000/XPでフォールバックの動作を実装する必要があります。
シャットダウンをブロックする必要がある場合は、ShutdownBlockReasonCreate
にメインウィンドウにハンドルを渡し、その理由を文字列として渡します。この文字列は、シャットダウンでブロックされたダイアログに表示されるものです。つまり、スクリーンショットで「1台の仮想マシンが使用中です。
シャットダウンをブロックする操作が完了したら、ShutdownBlockReasonDestroy
を呼び出します。
すべてのピースを合わせるには、WM_QUERYENDSESSION
を実装する必要があります。これはシャットダウンを実際にブロックする部分です。
XPの場合は、WM_ENDSESSION
にも応答する必要があります。アプリがシャットダウンをブロックした場合、その理由を示すメッセージが表示されます。そうしないと、コンピュータがシャットダウンの指示を無視している理由について、ユーザは頭を傷つけられます。
[WM_QUERYENDSESSIONへの返信を忘れないでください。](http://msdn.microsoft.com/en-us/library/ms700677(v = vs.85).aspx) – bzlm
ありがとうございます!私はGoogleを介してそれらを見つけましたが、ドキュメンテーションはUIに影響することに注意する方法ではあまり役に立ちませんので、メッセージボックスを使用してメッセージが表示されると思いました。 – foxy
キーは、解答の最初の文章にリンクしている話題の記事です。シャットダウンを処理するためのガイドです。 APIのドキュメントは、常にもう少し簡潔です。 –
コマンドラインでshutdownコマンドを使用すると、表示するカスタムシャットダウンメッセージを指定できますが、おそらくこれは関連していますか? – stijn