とっちゃん's Blog

WindowsInstaller に WiX はいかがですか~

目次

Blog 利用状況

ニュース

とっちゃんって?

コミュニティ

@ITの記事

CodeZineの記事

WiX チュートリアル

Windows ユーザー エクスペリエンス ガイドライン

唯一の日本語書籍

記事カテゴリ

書庫

日記カテゴリ

インストーラ関連

旧館

RestartManager の詳細 Part.2

前回はインストーラ側でしたので、今回はアプリケーション側。

こちらも基本的な構造は単純です(ただし、インストーラほど単純にはいきません)。

まず、アプリケーションに、状態保存と状態復元ルーチンを用意します(ここが全ての肝ですw)。

もちろん、アプリケーションが終了してもその状態を保持できる形ですので、メモリーではなくファイルなどに保持するわけです。

なにをどこまで保持しておくかは、アプリケーション側の都合で決めます。メモ帳なら、テキストの内容(もちろん、既存ファイルなら、そのファイル名もでしょうけど)などを保存しておくということになります。

次は実際の実装です。

まず、アプリケーションのトップレベルのフレームウィンドウに、WM_QUERYENDSESSION のハンドラを用意します。

lParam の値と ENDSETTION_CLOSEAPP(0x01) でANDをとり、値が !0 であれば、保存ルーチンを呼び出した後に RegisterApplicationRestart API を呼び出します(引数の詳細などはリンク先のヘルプを参照してください)。

保存ルーチンはこれで終わりです。

次は、起動時の処理です。復元される場合は、APIに渡したコマンドラインパラメータで実行されますので、その解析ルーチンを用意します(コマンドライン引数のパース処理をしていない場合は新規に追加となります)。

復元パラメータであることが判ったら、状態復元処理を行なってアプリケーションを起動すします。

仕組みとしては、これだけです。

単純明快な仕組みであるがゆえに、システム側のサポートはたったのこれだけです。

開発環境も全てそろってますし(WindowsSDKは一般公開されています)、Vista のRC版も来月になれば雑誌に添付される予定です(MSDN会員なら、今すぐダウンロードできます)。

ちなみに、社内デモやりたいからインストーラを公開してほしい!ということであれば、コメントにぶら下げてください。

StreetLiveのデモでもよければ、差し上げますよ(もちろん、ソースつきでw)。ただし、アプリは、C#2.0、インストーラはWiXですけどねwww

 

投稿日時 : 2006年9月8日 20:18

コメントを追加

# re: Restart Manager 2006/11/14 17:00 中の技術日誌ブログ

re: Restart Manager

# Windows Vista のリスタート/リカバリ処理の開発 2007/01/31 16:08 松崎 剛 ブログ (Tsuyoshi Matsuzaki Blog)

環境: Windows Vista、 Visual Studio 2005 こんにちは。 いよいよ Window Vista がリリースされました。今日は、Vista のリスタートとリカバリ機能を使ってみましょう。

タイトル  
名前  
URL
コメント