2009-07-20 15 views
2

シャットダウン前にマシンの状態を保存したいと思います(休止状態をサポートしていないマシンの場合)。.NETを使用してシャットダウンする前に状態を保存する

本質的に、私はWindowsのHibernate機能を模倣しようとしています。マシンが再びオンになったとき、マシンがシャットダウンされる前とまったく同じように見えます。

このタスクを実行するためのマネージコードの使用に関するアイデアはありますか?

は、現在のWindows XP Service Packのコンピュータ上で実行されているすべてのアプリケーションに対して2

+0

私はここでもっと情報が必要だと思います。あなたはプログラマーを実行する?あなたはあなたのprogrammの状態を保存したいですか? – cRichter

+0

どのオペレーティングシステムとサービスパックですか? –

+0

私は自分のプログラムを実行しています - ウィンドウの状態 - つまりすべての開いているプログラムを保存する必要があります - 私は可能な限りハイバネートを使用していますが、しかし、それが無効になっているとき、どのようなプログラムオプションがありますか? – Sameet

答えて

5

を考慮する/使用して、これは純粋なマネージコードを使用して簡単にはできません。実際、管理されていないコードを使用していても、時間の邪魔になります。私はそれが不可能だとは言わないだろうが、非常に困難で時間がかかりそうだ。 Windowsカーネル上

アルンのKishanコアは
http://en.wikipedia.org/wiki/Setcontext

レイモンド・チェンsetcontext
http://en.wikipedia.org/wiki/Core_dump

をダンプ
http://www.dotnetrocks.com/default.aspx?ShowNum=434

:ここ

は、あなたが始めるためにいくつかの有用なリソースがありますに独自のアプリケーションについては、「冬眠」とは、単一のプロセス
http://blogs.msdn.com/oldnewthing/archive/2004/04/20/116749.aspx

は、あなたの最善の策は、あなたがシリアライズ可能なクラスのセットに復元できるようにしたいと思い状態の全てを分離することです。次に、アプリケーションがアンロードされると(または定期的に)、XMLSerializerを使用してこのデータをディスクに保存します。アプリケーションが再度ロードされると、XMLSerializerを再度使用して、アプリケーションの状態を保持するクラスを再水和し、この情報を使用してユーザーインターフェイスを以前の状態に戻します。複雑なユーザーインターフェイスを使用している場合は、時間がかかることがあります。

0

プログラムを終了する前に、自分で保存する必要があります。すべてのウィンドウの状態をXMLにシリアル化して、ファイルに保存することができます。アプリケーションの再起動時に設定をリロードすることができます。

関連する問題