2010-12-02 5 views
1

CABとして配信されるActiveXコントロールがあります。私はタクシーの名前とclsidのOBJECTタグであるHTMLページを持っています。IEがインストール中にActiveXインストーラを削除するのはなぜですか?

これにより、私は許可するActiveXコントロールのインストールについてIEに尋ねられます。 CABをダウンロードし、インストーラを抽出して実行します。

MSIEXECが実行されていて、コントロールをインストールしようとしているときに、IEは.MSIファイルが存在する一時ディレクトリ内のファイルを削除することを決定します。場合によっては、ファイルがプロセスによってロックされ、削除が失敗してインストールが成功する場合もありますが、ほとんどの場合、削除が成功し、MSIEXECはMSIファイルが存在しないというエラーを記録します。

私はPROCMONでこれが起こっているのを見ることができますが、私はなぜそれがわかりません。 WindowsとIEの複数のバージョンで再現可能です。 MSIを削除するだけではなく、tempディレクトリのファイルを削除します。

ファイルの変更日は、ビルドマシンで作成された日付だけです。これは私が更新することができるものではありません(Webサーバー上のCABの中にあります) - 修正された日付を新鮮に保つために、このCABを5分ごとに構築することはできません。それは手がかりとして言及したかったのです。

なぜIEがtemp内のファイルを削除しているのですか?それをやめない方法はありますか?

+0

ウィルスチェッカーなどの外部プログラムで実行できますか? – Spudley

+0

PROCMONでは、IEXPLORE.EXEが削除を実行していることがわかります。我々は多くの異なるマシン上で再現することができます - OSだけでクリーンなものでも、他にはそれほど多くはありません。 WindowsとIEの複数のバージョン。私はこれを何らかの方法で求めていると思いますが、どうしたらよいか分かりません。 –

答えて

0

最後にこれを考え出しました。アプリを起動するためにCABにフックがある場合、終了するまで発信者に戻ってはなりません。コンソールアプリはこれをデフォルトで実行します.GUIアプリはデフォルトでは行いません。

私たちのインストーラは、CAB内の通常のsetup.exe GUIであるため、実行を開始した直後にすぐにIEに戻ります。 IEはその後、CABの一時ファイルのクリーンアップを開始します。

システムコールのコマンドライン引数を使ってmakeを実行した後、システムコールが終了するまで終了しないコンソールアプリケーションを作成しました。これにより、setup.exeが完全に終了するまでIEのクリーンアップが停止されます。

関連する問題