「お昼の放送」の思い出

先に同タイトルで質問した者です。
ProgramFilesもしくはProgramFiles(x86)にインストール出来ないプログラムのインストール場所
としてデレクトリの同レベルの場所にProgramFilesExtraを作りここにインストール出来ない
プログラムをまとめようとしているのですが、移動するとプログラムの関連づけができず
うまく行きません。環境変数のからみかなと推察するのですがこの辺に疎いので分かりません
ご教授下さい。
例えば "C:\Users\Owner\jt153c\Jtrim.exe"にあったプログラムをjt153c以下を削除
"C:\Program Files Extra\jt153c\JTrim.exe"という風にjt153c以下を追加しても
プログラムの関連づけで見つけることができず、画像ファイルをこのプログラムから
開くことができません。なぜでしょうか。
※ JTrimはレジストリをいじらないので、コピーだけで移動できると理解しています。
※ Owner以下はAdministrator(Owner)領域です。

A 回答 (7件)

>これはユーザー毎に設定がされているということでしょうか。


はい。HKEY_LOCAL_MACHINEの方がコンピュータとしての設定(全てのユーザに適用)、HKEY_USERSの方がユーザー毎の設定になります。
私の環境では、.CE3はHKLMの方にありましたが、なんででしょうかね。

>手でやるよりもレジストリクリーナを使った方が安全でしょうか。
手でやった方が安全ですかね。
レジストリクリーナーは参照が有効でないキーなどを検索してくれて、
消すだけなので、commandを移動先のパスに置換してくれるわけではないです。(多分)
移動後に、関連付け作業をやり直す(右クリック→プログラムから開く→既定のプログラム)ときに、前の情報が邪魔で出来ない場合に、消す作業が多少楽になるかな、程度。先の例で、レジストリのcommandのパスを移動先に手で置換すれば、そもそも消す必要がなくなりますし。

>レジストリクリーナで特定のプログラムに絞って削除ってできますか。
CCleanerの例で言えば出来ます。まず問題点の検索して、その後、問題箇所が列挙されますので、その内容を確認して、問題修正するものだけをチェックすれば良いです。(環境によっては、大量に出すぎて、チェックするのが面倒かもしれませんが。)

いずれにせよ、レジストリの変更する前はバックアップ取ってからをオススメします。
一番安全なのは、移動する各プログラムを正規の手順で、アンインストールしてから、正規のインストーラでインストールし直す(その時に移動先のパスを指定する)ことだと思いますが。
(インストーラが無く、zip解凍して、適当なフォルダに置くだけ、というソフトもありますので、一概には言えませんが。)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
インストールしてしまったプログラムを移動して、レジストリを直すというのはどうもスジが
悪いという気がしてきました。1~2個なら良いかも知れませんが。
クリーンインストールすることにします。

お礼日時:2016/03/06 08:52

>これが見つからないのは何が考えられるでしょうか?


少し説明が不足していましたが、HKEY_LOCAL_MACHIN\SOFTWARE\Classes\Applications\にあるのは、右クリックメニューから既定のプログラムとして、参照したプログラムの場合です。
(最初の回答の参照サイトの説明をご覧ください。)

通常のプログラムをインストールし、関連付けした場合は、\HKEY_CLASSES_ROOTとかHKEY_LOCAL_MACHIN\SOFTWARE\Classes\にプログラムが登録されてます。
回路図エディタの例で言えば、以下のような手順になります。
(1)レジストリエディタで「HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.CE3」の(既定)を見ます。
※".CE3"が関連付けしたい拡張子
 ("Bsch3V.Document"と書いてあるはずです。)

(2) レジストリエディタで、「Bsch3V.Document」を検索します。
 \HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Bsch3V.Document
というキーがあると思います。
(3) キーの中に、commandキーがあって、その中に、プログラムのパスが書かれていると思います。
 例)C:\bs3vp140821rtl\bsch3v.exe "%1"
(4)その値を移動先のパスに変えればいいです。

ちなみに、回路図エディタ(bsch3v.exe)は、関連付け機能はありませんが、
起動しただけで、勝手に関連付けしてくれるみたいなので、上記の面倒くさい手順踏まなくても、移動したプログラムのbsch3v.exeを一度起動すればいいようです。
他のプログラムはそうもイカンと思いますが。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

(1)で指定の場所に.CE3は見つかりませんでしたが、

\HKEY_USERS 以下に

.DEFAULT
S-1-5-18
S-1-5-19
S-1-5-20
S-1-5-21-2391597291-1338938925-2881136241-1001
S-1-5-21-2391597291-1338938925-2881136241-1001_Classes
S-1-5-21-2391597291-1338938925-2881136241-1007
S-1-5-21-2391597291-1338938925-2881136241-1007_Classes

があり、

\HKEY_USERS\S-1-5-21-2391597291-1338938925-2881136241-1001
\Software\Classes\.CE3が見つかりました。
そのデータは"CE3_auto_file"となっており、
これで検索すると、
\HKEY_USERS\S-1-5-21-2391597291-1338938925-2881136241-1001
\CE3_auto_fileが見つかりました。
この配下にcommandに旧パスを見つけました。
これはユーザー毎に設定がされているということでしょうか。

ただ他にも旧パスが入っている所を複数見つけることが出来るので
すが、手でやるよりもレジストリクリーナを使った方が
安全でしょうか。レジストリクリーナで特定のプログラム
に絞って削除ってできますか。

お礼日時:2016/02/25 22:53

どうしても解決方法が見付からなければ、実行ファイルの名前を変えるというのでは駄目でしょうか。



「bsh3v.exe」→「bsh3v2.exe」のような感じです。

確認環境がないので、これでもうまく行くか分かりませんが、他に方法が無ければ試してみてください。

あと思い付くのは、レジストリエディタの検索機能で、「bsh3v.exe」を検索する等でしょうか。もしかしたら何か分かるかも知れません。
    • good
    • 0

プログラムによっては、プログラムの機能に関連付をする機能があるので、


それを使えば多分良いです。(Jtrimの場合は、起動後、ファイル→関連付け)

右クリック→プログラムから開く→既定のプログラム選択だと、そのままだと、移動後のプログラムが選べません。(Jtrimで試したら、参照からEXEファイル選んでも選択画面にプログラムが出てこない。レジストリのHKEY_LOCAL_MACHIN\\SOFTWARE\Classes\Applications\JTRIM.EXEを一度消すと、再度選べるようになります。)

安全ではないかもしれませんが、大量にプログラムを移動して、1つずつ自分でキー削除等が面倒臭い場合は、CClearnerのようなレジストリクリーナーソフトで、問題点修復で、消すことはできます。ただし、余計なものまで変えてしまうと怖いので、自己責任で必要最低限のものだけやったほうがいいです。
(CClearnerの場合、レジストリのアプリケーションをチェックして、問題点をスキャン→必要なものだけ選択して、問題点を解決、を何度かすれば良い)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
JTrimに関してはおっしゃる通り、関連付する機能がありましたので、JTrim立ち上げ後
ファイル-関連付で関連付する拡張子を指定。任意のファイルを開く際に
このファイルを開く際はいつもこのプログラムを使うにチェックを入れたら解決しました
ありがとうございます。

ただ、HKEY_LOCAL_MACHIN\\SOFTWARE\Classes\Applications\ 以下に JTrim.exe
が何故か見つかりません。なのでこれを消すという手は使えませんでした。

同様に回路図エディタbsh3v.exeがc:\ユーザー\OWNER\bsh\bs3vp140821rtl\bsh3v.exe
にあるのですが、これを移動した場合、こちらは関連付する機能が無く最初の方法は使えませんでした。
次に
HKEY_LOCAL_MACHIN\\SOFTWARE\Classes\Applications\bsh3v.exeを探したのですが
見つからず、これを消すことも出来ません。これが見つからないのは何が
考えられるでしょうか?

お礼日時:2016/02/25 14:49

以下の方法で出来ないでしょうか。



----------------------------------------------------

当該のアプリケーションのフォルダを、任意の場所に移動します。

そのフォルダを開きます。

当該のアプリケーションを、「Shift」キーを押しながら右クリックします。

「パスのコピー」をクリックします。

次に、そのアプリケーションに関連付けたいファイルタイプのファイルを右クリックします。(例えば、Jpegファイル等)

「プログラムから開く」→「既定のプログラムを選択」の順にクリックします。

「参照」をクリックします。

「ファイル名」の欄内を一度クリックし、「Ctrl」キーを押しながら「V」キーを押します。アプリケーションのパスが貼り付けられます。

「開く」をクリックします。

「この種類のファイルを開くときは、選択したプログラムをいつも使う」にチェックを入れます。

「OK」をクリックします。

----------------------------------------------------

Windows7環境ではないので、説明が間違っていたり、足りなかったりするかも知れませんが、その場合は、それらしい処理を行ってください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
4行目、「パスのコピー」は無いのですが「パスとしてコピー」というのがありそう読み替えて
試して見ました。パスらしきものを貼り付けることはできるのですが、「開く」をクリック
してもJTrimは見当たらず、関連付けることは出来ませんでした。

お礼日時:2016/02/25 13:39

>ProgramFilesもしくはProgramFiles(x86)にインストール出来ないプログラムのインストール場所 としてデレクトリの同レベルの場所にProgramFilesExtraを作りここにインストール出来ない



レジストリをいじらないフリーソフトはデスクトップやドキュメントフォルダに保存しては?
ちなみに私は「デスクトップ」に「整理」フォルダを作成し保存しています。(ショートカットを作成し、アイコンから起動しているので「関連付け」はしていない)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
プログラムをAdministratorや標準ユーザーといった複数のアカウントから共通で利用したいのです。
デスクトップやドキュメントホルダだとそのユーザー専用の領域なのでユーザーに関係しない所
に作りたいということです。

お礼日時:2016/02/25 07:56

拡張子とプログラムの関連付を覚えているのはWindows OS側(レジストリ)です。


この場合だと、移動前の"C:\Users\Owner\jt153c\Jtrim.exe"と画像拡張子(例えば.bmp)の関連付けして記憶しているので、プログラムの場所が変わると、当然開けなくなります。
より詳しくは、下記サイトあたりを参照。
http://www.glamenv-septzen.net/view/14#id94ad8e

プログラム自体は、コピーだけで移動して起動もできると思いますが、
関連付けは、移動後にやり直す必要があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
レジストリを直接いじるのは怖いのですが、そうだとすると削除されて実体の無くなったプログラムの
レジストリ設定を削除すれば良いだけので、何かツールを使って安全に削除する方法はありませんか?

お礼日時:2016/02/24 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報