先日ふと、PCを何気なく使用しているとあることに気が付きました。
例えばエクスプローラーで、とあるファイルを開くときに、普通に開くのではなくて
当該ファイルをあるプログラムを指定して開きたいことってあるじゃないですか。

例えばこれは、「.adx」拡張子のファイルをfoobar2000で開くときです。
しかしこのように、目的のプログラムがすんなり出てくればいいのですが
目的のプログラムがここにない場合は、「別のプログラムを選択」ボタンを押すと
プログラムの一覧が表示され、そこから目的のプログラムを選べるのですが…

残骸が紛れ込んでいるじゃんか!!!

自分、一時期C++で検証を行っている際にQtと呼ばれるものをインストールしていました。
が、Qtは容量を食い、ストレージを圧迫していたので現在はアンインストールしてしまいました。
この残骸、どうやらアプリケーションをアンインストールしても残ってしまう模様。

まぁ普通に使っている分には何ら影響はないのですが、なんか気持ち悪いので一覧から消すことにしました。

注意

ここから先の行為はPCのレジストリを編集します。レジストリは下手に弄ると最悪PCが起動しなくなる可能性があります。
この方法を試したことによりPCが起動しなくなったとしても、筆者は一切の責任を負いません。
もし試される場合は、自己責任でお願いいたします。

レジストリを編集

まず、Winキー+Rキーで「ファイル名を指定して実行」ダイアログを表示させます。

出てきたダイアログに「regedit」と打ってエンターを押します。
「このアプリがデバイスに変更を加えることを許可しますか?」とでるのではいを選択。

レジストリエディターが開くので、以下のパスに進みます

HKEY_CLASSES_ROOT\Applications\

下の方に行くと、原因のキーがあります。

自分の場合、以下のキーがレジストリに残っている事が原因でした。

QtProject.QtCreator.xxx

メニューの項目と、レジストリの項目の数が一致するのでこれですね。

パスもメニューで表示されたパスと同じものがデータに入ってます。

という事で、サブキーごとこれらのキーを削除することに。

せっかくなので検証の為に、1個だけ残してみました。


するとこの通り、見事に1個だけ残ってあとは全て消えています。

全て削除し、これで残骸が表示されることがなくなって、すっきりしました。

ちなみに HKEY_CLASSES_ROOT\Applications\ に該当のキーがない場合、以下のパスに存在することもあるようです。

HKEY_CURRENT_USER\Software\Classes\Applications\

自分の場合は HKEY_CLASSES_ROOT\Applications\ にあったのでここにはありませんでした。

アプリケーションの残骸があって気になる、という方は試してみてもいいと思います。

ただし、前述しましたが下手にレジストリを弄るとPCが起動しなくなる可能性があるので、自己責任でお願いします。

余談

余談ですが、何故こんなことが起こるのか?という事です。

以下、筆者の推測ではありますが、アプリケーションをインストールすると大抵はその情報がレジストリに登録されます。
ポータブルで配布されているアプリケーションに関しては、そもそもインストールする必要がないものが多いため
「インストールしない=レジストリに情報を登録しない」のでこのような事は起こりません。
(ただしポータブルのアプリケーションであっても、アプリケーションの設定をレジストリに登録・保存しそこで管理しているアプリケーションもあります)

その後、ユーザーがインストールしたアプリケーションをアンインストールするときに、普通であればレジストリに登録された情報も一緒に削除してくれます。
ただし中には、アプリケーションの関連ファイルのみを削除し、レジストリに登録された情報はそのまま、というアプリケーションも多々あります。

そのため、アプリケーション本体とその関連ファイルは一切残っていないが、レジストリに残骸が残っているということになり
今回のようなことが起こるものだと思われます。

これはプログラムする人間次第ですが、アンインストールの際にレジストリに登録された情報も一緒に削除するのかしないのかの違いだと思っています。


0件のコメント

コメントを残す

アバタープレースホルダー

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

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。
(スパム対策)