DOBON.NET DOBON.NETプログラミング掲示板過去ログ

アンインストールでゾンビプロセスが残る

環境/言語:[WindowsXP-SP2、InstallShield 2008]
分類:[インストーラ]

いつも御世話になっております。

InstallShieldで作成したインストーラ(InstallScript MSI プロジェクト)の不思議な現象に困っています。
以下、再現手順です。

1) ユーザA上で、全てのユーザに対してインストールし、アプリケーションを起動しておく。
⇒画面が表示されている状態。
2) 簡易ユーザ切り替えで、ユーザBに切り替える。
3) ユーザB上で、アンインストールする。
⇒すると、見事にアンインストールできてしまいます!?

ユーザAに戻ってみると、ちゃんとアプリが起動されており画面もみえています。
でも、インストール先のファイルたち(Program Files以下)はすっかり消えています。なぜ??
(操作するとさすがにエラーになりました..)

起きてしまうものはしょうがないので、対応策を考えたいのですが、InstallShieldのスクリプトから
PC内でアプリケーションが起動されているかをチェックする方法が見つかりません。。
どなた様か経験のあるかたおられないでしょうか?

#最初FindWindowを使っていたのですが、別ユーザのウインドウまでは見つからないみたいで..。
InstallShieldってバグが結構あったので、どうなのかなぁ〜と考えながら
記載しておりますが(何度かなかされた事がある方々がいらっしゃるはず)、
素直にあきらめて、VS Installer使って、カスタム動作を設定するのが早いかもしれません。
タスクマネージャにのっかってきているのであれば(ゾンビプロセス)
カスタム動作で引っ張ってこれると思われます。

あまり約に立たないで申し訳ありません。
じゅで様、レスありがとうございます。

> InstallShieldってバグが結構あったので、どうなのかなぁ〜と考えながら
> 記載しておりますが(何度かなかされた事がある方々がいらっしゃるはず)、
確かに、いろんな人からそのように聞きます..。

> 素直にあきらめて、VS Installer使って、カスタム動作を設定するのが早いかもしれません。
> タスクマネージャにのっかってきているのであれば(ゾンビプロセス)
> カスタム動作で引っ張ってこれると思われます。
WindowsAPIを使用して存在の有無を確認するモジュールを作って、それをカスタム動作として
登録し呼び出す。
ということですね?

その方向で頑張ってみます。
ありがとうございました。
> WindowsAPIを使用して存在の有無を確認するモジュールを作って、それをカスタム動作として
> 登録し呼び出す。
> ということですね?

という事です。
もっと良い案がある人とか、そもそもInstallShieldで出来るぞ
とか言う人もいるかもしれませんが。

確か、前会社で問題があったとき(もちろんInstallShieldです。)
、動作おかしいんだけどと、
問い合わせを行っていた猛者もおりますので、
問い合わせしてみると、意外とさくっと解決するかも知れません。

DOBON.NET | プログラミング道 | プログラミング掲示板