ページ 11

C++でサインアウトを検知したい

Posted: 2018年11月01日(木) 20:00
by DAICHI0922
C++でRPG風のCUIアプリケーションを作成しています。

ユーザーがサインアウトまたはシャットダウンを行おうとしたことを検知し、一旦サインアウトを中止しユーザーにプログラムの正常終了を促すにはどうしたらよいのでしょうか。
(ガチャ要素などがあり、リセマラの防止などの観点で)

https://qiita.com/gocha/items/38e2301db ... ウトしてしまいました

イメージとしては、いったんプログラムのウィンドウに戻って、正常終了処理を行い、system関数から自動的にサインアウト~というのをイメージしています。

開発環境はVisualStudio2017でC++のWin32コンソールアプリケーションです。

Re: C++でサインアウトを検知したい

Posted: 2018年11月02日(金) 02:37
by YuO
see) Shutdown Changes for Windows Vista | Microsoft Docs
Canceling shutdown | Note that the system does not allow console applications or applications without a visible window to cancel shutdown.
というわけで,Console ApplicationはShutdownをキャンセルできません。
おそらく,Log offもキャンセルできないかと。

さらに,Best Practicesには
Applications cannot rely on being able to block shutdown.
とあり,Log offやShutdownの中止に依存するようなプログラムは推奨されません。


そもそもの目的を考えると,Log offやShutdownでキャンセルできるような仕組みが問題です。
で,ユーザーがそれが可能であるのは,結果が確定されるのが,結果が表示された後になるからだと思います。
結果を生成した直後に確定し,その後に結果を表示すればよいのではないでしょうか。