2012-02-27 7 views
2

私は小さな修正を加えた製品用のMSIパッケージを用意しています。ユーザーがアプリケーションを終了した瞬間を待っています。MSIのインストール中に製品が実行されるのを待つ必要があります

私はこの

ます。msiexec/iの/静か

をproduct.msiが、MSIは、それはそれにWM_QUITを送り、製品およびプログラムをインストールするようなサイレントモードで何かに実行することができ、ユーザprivilegiesの下で実行されている更新プログラムを持っています閉じてユーザーが再度開く必要があります。どのように私はそのようなコマンドの実行を延期することができますか?インストールをスケジュールすることはできますか?

+0

あなたの状況をよりよく理解する必要があります。新しいバージョンが利用可能であることをアプリケーションのユーザーに尋ねるだけで、アプリケーションを閉じるときに起動することができますか? –

+0

msiexecコマンドなどを実行している昇格されたprivがありますか?その場合は、非privユーザーが/ iを起動したときに正しくインストールされるように、/ jm(/ i)コマンドを使用してMSIを宣伝(「bless」)することができます。 –

+0

1)はい、私は新しいバージョンが利用可能であることをユーザーに促すことができますが、ここで私はユーザーの操作なしでバイアントを研究したいです 2)私は通常のユーザーのpriv(de elevated)私はログイン時とログイン前にswithing後にインストールできるサービスを作成することができますが、避けたいのですが –

答えて

1

解決策は、アプリケーションを「再起動マネージャ」に認識させることです。

WM_QUITの代わりに、再起動マネージャ対応として登録し、WindowsインストーラはWM_QUERYENDSESSION/WM_ENDSESSIONメッセージを送信します。適切なシャットダウンのためにアプリケーションを準備し、ユーザーセッションを保存したり、アプリケーションのシャットダウンを適切にブロックしてから、アプリケーションを自動的に再起動します。

Restart Manager Guidelines for ApplicationsのMSDNのドキュメントを参照してください。

+0

ありがとう、この質問はまだ私のために実際であり、あなたは私に希望を得る –

+0

幸運!私は、MicrosoftがVistaの機能をデモする時にchannel9のデモビデオを持っていたと思う。さらに、Windows SDKにサンプルコードがあるかもしれない。 – saschabeaumont

関連する問題