アプリ版:「スタンプのみでお礼する」機能のリリースについて

レジストリをいじらずにインストールするある方法を思いつきました

setup.exeなどでレジストリを使うアプリケーションをレジストリなしでインストールできますか?

これをするために私はある方法を思いつきました。

1.まずsetup.exeを実行してインストールする。(システムの復元ポイントを作る)
2.インストールされたファイル・フォルダを外部ストレージ(USBメモリーなど)へコピーする。
3.1.で作られたポイントまでシステムの復元をする。
4.復元完了後にコピーしておいたファイル・フォルダを好きなところにコピーする。

この手順でレジストリは元のままでファイル・フォルダだけインストールすることは可能なんでしょうか。レジストリは全く変更していないことになるのでしょうか?

A 回答 (5件)

iniファイルだと大きさの制限があったり、各ソフトのフォルダ毎に散らばっているので一元管理できないという理由から、レジストリという仕組みが導入されました。

要はiniファイルの後継です。レジストリとiniファイルのどっちを使うかは、ソフト設計時に決めるものであって、レジストリがないからiniにする…という方法を採るくらいなら、最初からiniだけにした方がよっぽど簡単ですっきりしますよ。

また、iniファイルを使うソフトでも、起動時に自分用のiniファイルが見つからない場合は自ら生成するように作るのが普通であり、レジストリも同じことが言えます。つまり、せっかくレジストリ情報だけ消しても、exeを起動した途端に生成されてしまい、その努力と時間は無駄になるおそれが強いと言えるでしょう。

すでに他の回答者さんから説明があるとおりで、レジストリは動作する上で必要だから書き込んでいるのであって、用もないのに書いているわけではありません。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/10/04 00:15

#1です


文節の切り方が悪かったため誤解を与えたようですが、
アプリケーションのインストール時に、レジストリに情報を書き込むって事は、
そのアプリケーションではレジストリに記録した情報を使用したいからです。
で、そんな情報を消してアプリケーションが正常動作するのか?ってことです。

レジストリを消しても正しく動作するって言うのなら、
レジストリは何のために存在してるのか。って事です。
    • good
    • 0
この回答へのお礼

だんだんわかってきました。
アプリケーションが思い通りに動くためにレジストリがあるということなんですね!
アプリケーションの動作はレジストリと深い関係にあることを今日学びました。
ありがとうございます。

お礼日時:2010/09/30 23:44

システムの復元は、位置や拡張子で決められたファイル群を強制的に上書きするだけでしかありませんので、事後の不整合にはユーザーが別途対処する必要があります。



>2.インストールされたファイル・フォルダを外部ストレージ(USBメモリーなど)へコピーする。
ここです。
ここでインストールされたファイルやフォルダの位置情報もレジストリに記述されますが、ご質問の手順だとこの位置情報をOSが見つけることができなくなります。
復元後はこういう不整合が発生し、*.exeはおそらく動作しません。レジストリのみならず、必要なDLLも存在しないため、メニューが開かなかったりメニュー内の項目が動作しなかったりするでしょう。
さらに関連づけが失われていますので、作成したファイルのダブルクリックで当該アプリケーションを起動させることができません。
そして最後にアンインストール作業(レジストリのみではなく、不要なDLLの削除作業もあります)をマトモに完遂させることはできないでしょう。ひょっとすると上書きして再インストールすることすらかなわなくなるかもしれません。
    • good
    • 0
この回答へのお礼

アプリケーションが使えなくなるということなら私の方法はとても自滅的で非効率的な事がわかります。ありがとうございます。

お礼日時:2010/09/30 23:41

> この手順でレジストリは元のままでファイル・フォルダだけインストールすることは可能なんでしょうか。



何を持って「インストールされた」とするか?次第では?

対象のファイル・フォルダがHDDにコピーされる事をインストールと呼ぶのなら、インストールされた事になるのでは。

> レジストリは全く変更していないことになるのでしょうか?

変更した後に、元に戻した事になると思います。

--
例えば、あるアプリケーションは起動時にレジストリに記録されているフォルダからファイルを読み出し、その設定に従って動作するとかであれば、エラーが出て起動しないかもしれないし、適当な初期状態で起動するかも知れないし。

多くのWindowsアプリケーションは、レジストリに情報が無い場合には、プログラム内に規定している差しさわりの無さそうな規定値に基づいて動作します。
結果、動作しないアプリケーションもあるし、それなりに動作するものもあるし、通常はそうならないような既定値を設定しますが、異常な動作するって事もあり得ます。

また、アプリケーションの終了時に、その際の規定値をレジストリに書き戻す場合がありますので、インストールの時にどうこうって事を気にしても意味無い場合もあります。

この回答への補足

アプリケーションによるレジストリの変更はセットアップのみではなく、起動、終了時も変更されるものなんですね。
アプリケーションがレジストリを変更させるんですか?
レジストリに書き込まれないように構成設定(.ini)に書き出すようにならないものですか?
☆レジストリへの情報を構成設定(.ini)に書き込ませるような設定にする方法はないのですか?
私はレジストリの構造はMicrosoftの仕様で、ゴミが出るのは仕方がないということは知っています。
クリーンに保ちたいということなんですが…
不可能なことは不可能と割り切ったほうがいいのでしょうか。

補足日時:2010/09/30 23:35
    • good
    • 0

あの。


そのアプリケーションが登録したレジストリを参照するときはどうするんでしょうか?

この回答への補足

質問でしょうか?参照?レジストリの事は全くわかっていないので、わたしにはアプリケーションが登録したレジストリを完全に参照することはできません。あなたがレジストリを模索的に参照するのならアプリケーション名やプロダクト名などをregedit.exeで検索する方法があると思います。

補足日時:2010/09/30 23:23
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2010/09/30 23:48

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