開発環境 VC++ Ver6.0 SP6 MFC
マシンOS Windows XP HOME(最終的にはXP Pro)
上記環境で、ダイアログベースのアプリを作っています。
アプリの終了ボタン選択で、PCもシャットダウンし電源を切ろうと考えています。
方法は特権を設定した後、ExitWindowsExかInitiateSystemShutdownで行おうとしており
実際に、PCがシャットダウンすることを確認しました。
但し、よくわからないのが、そのシャットダウン処理をどこに入れればいいのかです。
基本的にタイムラグを持たずに、強制的に終了させることを考えているので、変な所に
入れてもまずいかなと思っています。
取り敢えず、テスト段階ではOnDestroy中の最後の方に入れていますが、この後外部の制
御ハードの終了処理も入れていきたいので、出来るだけ安全な箇所でシャットダウンさせ
たいのです。
どうか知恵をお貸し下さい。
終了処理が終わったあとで ExitWindowsEx を呼び出せば心配ないと思いますが。
そういう話ではないですか?
シャットダウンの指示を出すと OS は全プロセスの終了を待ってから
終了しますから、微妙な呼び出しタイミング等は気にかけなくてよいです。
dairygoodsさん、アドバイスを有り難う御座います。
> 終了処理が終わったあとで ExitWindowsEx を呼び出せば心配ないと思いますが。
> そういう話ではないですか?
当然ハードの終了処理が終わってから、シャットダウン要求を出します。
でないと、ちょっと恐ろしいことになりそうなので。
> シャットダウンの指示を出すと OS は全プロセスの終了を待ってから
> 終了しますから、微妙な呼び出しタイミング等は気にかけなくてよいです。
アプリがきちんと終了する前に、シャットダウンしないか不安だったので、こんな質問を
出させていただきました。
色々な状況を考えると、終了確認を出さずに、シャットダウンするのは、よくないので、
InitiateSystemShutdownでタイムアウトを設定しようと思います。
有り難う御座いました。