スポンサーサイト

(--/--/-- --:--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【 permalink 】 | | page top↑ | edit
Vistaがインストーラだと思い込む実行ファイルの名前について。patch.exeとか。

(2009/08/02 07:05)

Vista で patch.exe を使おうとしたら、UACで暗転(※管理者権限への昇格確認中のあれ)して とても残念な気持ちになりました。

調べてみると、どうやら Vistaちゃんは、ファイル名に「setup」とか「instal」とか「uninst」とか「patch」とか「update」という文字列が含まれる実行可能ファイルを、インストーラのたぐいと思い込むようです。

そんな思い込みのはげしいVistaちゃんになんだか淡い興味を抱いたため、もうすこし詳しく調べてみました。

# 2009/08/16 追記。MSYS (1.0.11) に、Vistaちゃんが勘違いをしないようにするmanifestファイルが入っていました。ぶっこぬいたものを置いておきます。[patch_exe_manifest.txt]
中身を見る限り、patch.exe以外にも使えそうです。「patch.exe.manifest」等に改名してご使用ください。

まず、調査の方法ですが、Microsoft Application Compatibility Toolkit 5.5 なるものを見つけたので、こやつ(の中の「Compatibility Administrator」)を使用しました。

なお、調査対象のVistaちゃんは、Windows Vista™ Home Premium SP1 です。


当方が調べた範囲で、Vistaちゃんが実行可能ファイルをインストーラ(GenericInstaller)だと思い込む条件は以下のとおりです。

  1. 実行可能ファイル名に「patch」という文字列を含む場合。(xxpatchxx.exe など)
    ただし、以下は除外される。
    • adpatch.exe
    • dispatch.exe
    • dispatcher.exe
    • WIDispatcher.exe
  2. 実行可能ファイル名に「uninst」という文字列を含む場合。(xxuninstxx.exe など)
  3. 実行可能ファイル名が「artpschd.exe」である場合。
  4. 実行可能ファイル名に「update」という文字列を含む場合。(xxupdatexx.exe など)
  5. 実行可能ファイル名に「instal」という文字列を含む場合。(xxinstalxx.exe など)
    ただし、以下は除外される。
    • TrustedInstaller.exe
    # TrustedInstaller.exe と同じフォルダ内の instal.exe は、インストーラとみなされない模様。不思議!
  6. 実行可能ファイル名に「setup」という文字列を含む場合。(xxsetupxx.exe など)

# 大文字小文字の違いは無視されます。

# これらは、ファイル名のみを条件としてインストーラと思い込む条件を抜粋したものです。ファイル名のほかにも、Vistaちゃんはバージョン情報の製品名やら なんやらかんやら を見ているようです。


# 今回使用した Compatibility Administrator で互換性修正プログラムのデータベース(多分、実体はsysmain.sdb)を見ていると、おびただしい数のアプリケーションが登録されているのがわかります。

かつて Windows 95 の開発終盤の時期に、開発チームがさまざまな Windows 3.1 アプリケーション を Windows 95 で動かすために奔走し、マイクロソフトの近所のショップからソフトの在庫が払底したとかしないとかという話を思い出します。クールなロジックよりも、最終的には力ずくの全網羅が強いってことですね。

【 permalink 】 | vista uac | トラックバック(0) | コメント(0) | page top↑ | edit
<<メールフォームを用意してみました。 | ホーム | exewrapを個人的な好みで改造してみた。主にVista向けに。>>
コメント

※コメント大歓迎です。いただいたコメントに対してこちらから返答することは原則ありませんが、必要な場合には記事本文で回答します。

コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://0xc000013a.blog96.fc2.com/tb.php/116-56dd67a1
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。