ファイルの拡張子に応じて、プログラムが立ち上がる!。
これは Windows の 素晴らしい 仕組みです。
でも、 少し、癖! があります。
プログラムの名前で管理されている為、 えっ! となる事も ... 。
プログラムを自分で書いていて、
よせば良いのに、 Debug レベルで一度ファイルに関連付けしてしまうと、
いざ、 Release レベルのもの、 つまり、
同一名称の実行ファイル、 を選び直しても、
最初に登録されたパスに存在するものが呼び出されます。
存在していれば、 です。
それを知らずに、何回、登録し直しても、 結果に変わりはありません。
別に、この事は、プログラミングの有無とは関係ありません。
ごく普通の方も 遭遇する可能性はあります。
それは、 アプリやソフトの 更新 の仕組みと関連があります。
簡単な仕組みは こう です。
ファイルの拡張子 毎に、
関連付 けで や プログラムから開く で使った 実行ファイル がレジストリに登録されます。
何処に保存してあるものかは 問いません。
つまり、ファイルの名称のみ (場所(パス)はここでは無関係) で管理されています。
そして、
それに結び付く形で、
実行ファイル名の 初回の場所(パス)が 個別に保存されます。
同じ名称の 例えば (バージョンが異なり) 保存場所が別の もの を選択しても、
それは無視されて、
初回登録時のものが呼ばれます。
同じ場所 同じ名称 で 更新 されれば、 問題はありません。
その場所にある その名前の 実行ファイル が呼ばれるから ですね。
問題は 更新 が、 同一名称なのに 別の場所 (パス) に保存された時 に起こります。
それでは、
対策を。
登録し直しても、 別の (従前の) 場所にある もの が立ち上がってしまう場合の対処法です。
ちょっと、怖い気もしますが (?) 、
regedit.exe レジストリエディタ の出番です。
以下の階層(場所)を辿って行き、値を訂正しましょう。
HKEY_CLASSES_ROOT\Applications\xxxxxxxx.exe\shell\open\command
です。
そこの データ に保管されている パス名 を訂正します。
懇切丁寧には書いていません。
恐らく、この手段を使う方は、この記述内容で対処出来る と思っているからです。
逆に、この記載で不明な方は 対策は止めて置かれた方が良いのかも知れません。
何せ、 OS の根幹の レジストリ を弄る事になるから です。.
0 件のコメント:
コメントを投稿