- ベストアンサー
レジストリを使用するプログラムについて
レジストリを使用するプログラムをシステムドライブ以外に入れて、OS再インストール後もそのまま使う方法はありませんか? ポータブル版やzipのものがあればそれを使うのですが、それがないものについて教えてください。 また、レジストリを使用するプログラムは、設定ファイルなどをAppDataに格納していたりするのですが、その保存場所をプログラムの存在しているフォルダと同じ場所に保存するようにさせる方法はありませんか? 詳しい方、お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、はじめまして。 プログラムを作った人を「プログラマ」とここでは呼ばせていただきます。 プログラムで使用するデータをどのような形で何処に保存するかはプログラマが決める事です。レジストリを使う事もあればファイルにしてどこかのフォルダに保存したりもできますし、最近のものであればクラウド上のどこかに保存する事もあるでしょう。 いずれにしても決めるのはプログラマです。 そしてそれを何処に保存するかをユーザーが変更できる機能を持たせる事もできます。これもプログラマがその様に作ればそうなる、と言う事で、保存場所をユーザーが変更できるようにするかどうかもプログラマが決める事です。 逆に言うと、プログラマがユーザーに変更できるようにプログラムを作っていなければユーザーは変更する事ができません。 質問者様が「ポータブル版」と仰っているようなプログラムの場合、多くはプログラムのファイルと同じフォルダーに設定ファイルを格納するか、そもそもプログラムのファイル以外に設定ファイルを必要としないか等で、レジストリもAppDataへの格納も行わないのが多いのではないかと思います。 設定ファイルが必要な場合、プログラムのファイルと同じフォルダにある事を前提としてプログラムを作れば、プログラムのフォルダーごとコピーすれば設定ファイルもコピーされて、プログラムが設定ファイルを探す必要が無くなる、と言うことですね。 「レジストリを使用するプログラムは、設定ファイルなどをAppDataに格納していたりする」 と質問者様は仰っていますが、これも正しい表現ではないと思います。レジストリを使用するプログラムは必ずAppDataに格納しなければいけない訳でもないし、AppDataに設定ファイルを格納する為にレジストリを使わなければいけない訳でもありません。 レジストリを使うかどうか、AppDataに格納するかどうかも全てプログラマの任意の判断です。 質問者様の仰る「レジストリを別の場所に移し、そこから参照させるアプリ」と言うのを私は知らないのですが、レジストリというのはOSとしてのWindowsがプログラムに標準的に提供している設定情報置き場、の様なものだと思ってください。 プログラムはWindowsに(レジストリに)設定を書き込みたい、読み込みたい、と命令をだします。レジストリの実体がどこにあるかはプログラムは知る必要はありません。設定の名前(レジストリキー)をプログラム独自でプログラマが決定し、その名前で読み書きの命令を出すと思ってください。 「レジストリの場所を移す」と言うのがどういう意味なのかによりますが、レジストリキーを変えたら普通はプログラムは正しく動きません。 レジストリにはそのPCを使う人全てに共通の部分と、ログオンしたユーザー毎の部分があります。同じプログラムをインストールしていても、ログオンするユーザーが変わると別の設定が保存できる場合はユーザー毎の部分、どのユーザーがログオンしても同じ設定が使われる場合は共通の部分に保存されている可能性が高いと思います。 もしかすると「レジストリを移す」と言うのは、そのユーザー毎のレジストリ情報を他のユーザーに移す、または、PCを変えたときにユーザー毎のレジストリ情報を新しいPCに移す、と言うことなのかな?と想像しましたが、実際はわかりません。 長くなりましたが、質問者様の求めている方法は「無い」と、私も思います。理由は上記をお読みいただければご理解いただけるのではないかと思います。
その他の回答 (2)
- E_X_NEGOTO
- ベストアンサー率64% (50/77)
インストールディスクやインターネットからダウンロードできるものであれば、自分でインストールして設定し直す方が早くて失敗も少ないと思います。 ※自分でバックアップしてあったセットアップファイルでも同じです。 レジストリーのバックアップもありますが、バックアップデータから戻した場合に、トラブルになる可能性があるので私はお勧めしません。 ソフトによって異なりますが、設定ファイルに保存できるものもあります。 けれどすべてのソフトがそう言うわけではありません。 設定できるものについては設定ファイルから保存するようにしておけばいいと思います。 それから、そのソフトの作者様に意見として「設定ファイルに保存で切るように検討してほしい」と頼んで見てもいいかもしれません。 必ずではないですが、答えてくれるかも知れませんし、作者様自身も「こんな意見の人がいるんだ」とわかってくれると思いますよ。 ※私の意見なので決めるのは質問者様です。
- kteds
- ベストアンサー率42% (1882/4440)
いずれもありません。 レジストリを使用するプログラムを自分で作成してみればすぐに解ることなのですが、 プログラムを作成したことのないヒトには、なぜレジストリを使っているのか、理解できないのでしょうね。 --- レジストリを使うプログラムは特定のレジストリのエントリ(場所)を指定して動作しています。 したがって、プログラムが決めているものをユーザーが変更するわけにはいかないのです。 ユーザーが変更できるようにするには、ユーザー自身がプログラム内容を変更してコンパイルし直す必要があります。 つまり、プログラム内容まで変更できるようなユーザーは、他人の作成したプログラムを使わないで、そもそも初めから自分でプログラムを作成するでしょう。
お礼
回答ありがとうございます。 プログラム内容の変更できるのであれば、その場所さえ教えていただければ、自分で変更はします。ですが、それができないようになっているものもありますよね? ですので、プログラムの変更が無理でも、レジストリを別の場所に移し、そこから参照させる方法はありませんか?そういったアプリがあったような気がします。 全部のアプリがうまくいくわけではありませんが。
補足
ポータブル版は、レジストリを使うものを改変して作られているものがあると思います。 プログラム作成経験のある方のようですので、その手順を教えてください。
補足
ありがとうございます。 >レジストリを使用するプログラムは、設定ファイルなどをAppDataに格納していたりする 「格納していたりする」と書いている通り、プログラムによってさまざまであるということを意味しているので、間違ってはいないはずです。 確かにOSやシステムに関わるプログラムをレジストリを使用せずに使うのは無理でしょう。 ですが、文章作成ソフト、画像編集ソフトなどOSと関わっていないソフトは使用できますよね。 右クリック拡張など一部の機能はレジストリを使用しないと使えませんが、そういった機能使わない場合、レジストリにインストール情報を書き込まなくても使えることは確認済みです。 アプリについてですが、ポータブル化するアプリが過去にありました。私も使用しましたが、確かに使用できることを確認しました。(今、そのアプリがあるかどうかは分かりませんが) レジストリや設定ファイルを確かに別の場所に書き込んでいたようですよ。 私も、どのアプリか覚えてないので、はっきりは言えませんが、一部のOS関連アプリを除き、不可能ではないというのが私の考えです。