「プログラムの選択」クリックで「プログラムを選択するダイアログ」が出なくなった場合の修正方法

ファイルを関連づけ以外のプログラムで開きたい場合、右クリック→プログラムから開く→プログラムの選択、と辿りますよね。
数日前から、このプログラムの選択をクリックすると「プログラムを選択するダイアログが出る」という動作ではなく「そのファイルをメモ帳で開く」という動作をするようになってしまい困っていました。
うーん、なんだろう、何かの弾みでおかしくなったのかな…などと思いつつ、一応「sfc /scannow」でシステムチェック。システムは問題なし。

調べてみたところ「プログラムから開く→プログラムの選択 を実行するとメモ帳が起動する」という記事を発見。窓の手の設定でこういう動作にする方法があるようですが、私は窓の手は入れてありますがその部分の設定は変えていなかったので該当しませんでした。ただ、直し方として以下のような一文が。

レジストリを直接修正するならば、キー HKEY_CLASSES_ROOT\Unknown\shell\open を右クリックして削除します。

プログラムから開く→プログラムの選択 を実行するとメモ帳が起動する』より引用

「プログラムを選択するダイアログがでない」ということばかりに気を取られて「関連づけがおかしいんじゃないか?」という発想は全くありませんでした。
そりゃあ「関連づけがなかったらメモ帳で開く」と決めうちされてる状態になってたらダイアログ出ないですよね :oops: 上記のとおりレジストリを修正。

しかし、これで直ったかなとプログラムの選択をクリックすると「指定されたファイルに対してこの操作を行うプログラムが関連づけされていません。[フォルダオプション]コントロールパネルでプログラムを関連付けてください。」というエラーが。メモ帳で開かれる状態からは抜けましたが、「プログラムを選択するダイアログが出る」という動作にならない。おかしいなと該当箇所のレジストリを眺めると、どうも「プログラムを選択するダイアログが出る」ために必要なレジストリが足りない様子。

そのレジストリの詳細を書いてある記事がなかなか見つけられず難儀しましたが、下のページを発見。OKWave 等、Q&A 系のサイトは凄いですね~過去ログの価値は計り知れないですね。回答者の方に感謝しつつ、レジストリを修正。 :grin:

↓の文章を拡張子REGで保存(例えばittochan.reg)して
保存したittochan.regをダブルクリックしてみてください。

—-この下から

REGEDIT4

[HKEY_CLASSES_ROOT\Unknown]
“AlwaysShowExt”=””
“QueryClassStore”=””

[HKEY_CLASSES_ROOT\Unknown\shell]
@=”openas”

[HKEY_CLASSES_ROOT\Unknown\shell\openas]

[HKEY_CLASSES_ROOT\Unknown\shell\openas\command]
@=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,72,\
75,6e,64,6c,6c,33,32,2e,65,78,65,20,25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,\
73,79,73,74,65,6d,33,32,5c,73,68,65,6c,6c,33,32,2e,64,6c,6c,2c,4f,70,65,6e,\
41,73,5f,52,75,6e,44,4c,4c,20,25,31,00

—この上まで

右クリック→プログラムの選択ができない。 -OKWave』より引用

これを実行し、無事プログラムの選択をクリックすれば「プログラムを選択するダイアログが出る」という動作に戻りました。


無事ダイアログがでるようになった後のレジストリ状態。私の場合、HKEY_CLASSES_ROOT\Unknown\shell\openas\command がおかしかったようです。

一応メモしておくと、HKEY_CLASSES_ROOT\Unknown\shell\openas\command 内に

とあれば OK 。同じ症状がいつかまた出たときのためにも書き残しておきます :mrgreen:
ちなみに SS で映っているソフトは Windows のレジストリエディタより使いやすいのでオススメです。

※現在は「激動たる俺RegEdit改」という名前のソフトになっているようです。

3件のコメント

  1. こんにちは。OK Waveの回答で理解できず困っていましたが

    ここの解説のおかげで解決できました!

    ありがとうございました!

  2. こちらの解説で解決できましたが、ひとつ気になった箇所があるので報告しておきます。
    レジストリでHKEY_CLASSES_ROOT\Unknown\shell\openas\command内を直接編集する場合、値の種類をREG_EXPAND_SZにする必要があると思います。
    おそらく、この種類が新規文字列作成時のREG_SZだと、プログラムの選択を指示しても「アクセスが拒否されました」となってしまいます。

    1. 確かに、値の種類は REG_EXPAND_SZ に指定する必要がありますね。
      有用なご指摘ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です