8

Windows Update によって再起動が行われたかどうかにかかわらず、PC 上のいくつかのアプリケーションが検出を行っています。これは、Windows Update の自動再起動後に再起動するために観察できます。

これらのアプリケーションは、保存されていない変更やタブの復元 (ブラウザーの場合) であっても、変更をリロードするため、これは非常に役立ちます。これを行うアプリケーションの例:

  • グーグルクローム
  • マイクロソフト ビジュアル スタジオ
  • マイクロソフトペイント

いずれの場合も、アプリケーションは再起動前の状態を保存します。

(実際、私の PC は自動的にスタンバイ状態から復帰し、アップデートのインストール中に自動的に再起動しました。残念ながら、これを行った後、スタンバイに戻りませんでした。)

私の質問は次のとおりです。この種の再起動をプログラムで検出するにはどうすればよいですか? 再起動前に確実に検出できるようです。

Windowsの最後の再起動の理由を取得するにはどうすればよいですかという質問は重複しているように思えるかもしれませんが、更新については何も答えていません。

私は C# でコーディングしているので、たとえば C や C++ も読めますが、C# での回答が役に立ちます。

4

2 に答える 2

4

アプリケーションの再起動を参照してください。

アプリケーションは、アプリケーションの回復と再起動 (ARR) を使用して、未処理の例外が原因でアプリケーションが終了する前、またはアプリケーションが応答を停止したときに、データと状態情報を保存できます。

と:

または、更新の結果としてコンピューターを再起動する必要がある場合。

アプリケーションは、事後に再起動の理由を検出しません。アプリケーションは、この API を使用するように設計されています。(私が知る限り) このためのマネージ API はありません。


数回クリックするだけで、ソフトウェアの更新によりアプリケーションが閉じられたときにデータとアプリケーションの状態を保存できます。繰り返しますが、マネージ API はありません。

于 2012-03-10T16:18:01.813 に答える
0

通常、Windowsが再起動すると、shutdown.exeと/ gフラグを使用して再起動を実行し、再起動前に登録されているすべての実行中のプログラムの状態を保存します。あなたがしたいことは、再起動のためにアプリケーションを登録することです。MSDNによるこのドキュメントの良いサンプルがあります。C#およびC++で使用できます。

于 2012-03-10T17:05:40.043 に答える