レジストリ vs プライベートINI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/22 18:00ID:kWO77Burプログラマの視点から、逆にユーザの視点から、
それぞれの利点や欠点について意見を聞かせてください。
0189名無しさん@お腹いっぱい。
01/12/15 18:18ID:VWy4rHM8そこまでする必要ないよ。こんなソフトあったらむしろヤだよ、俺。
どうせ半年もすればOSごと再インストールするんだし、細かいこと
気にしないで、もっと気楽に使おうよ。みんな几帳面すぎ!
レジストリの掃除にはうるさくても、部屋の掃除はしてなかったりして…
0190もなか
01/12/15 21:07ID:???気楽に行きたいのなら、黙って「標準」を選べばいいと思うんだが……。
インストール時に選択肢のあるソフトなんていくらでもあるじゃない?
ちなみにおれは、「レジストリ使ってもOK派」なんだけど、
ここでの議論は面白いし、何かの形で実を結ぶ可能性があると思うよ。
それより……
>どうせ半年もすればOSごと再インストールするんだし、
この手の話が出るたび、いつも不思議に思う。
まともに使ってて、そんなに再インストールってある?
おれ、結構いろんなソフト使ってるけど、二台持ってるうち、
一台は Win95 で、3年以上普通に動いてるし、もう一台は Win2000 に変えるまで
Win98 のまま、1年半、問題なかったけどなあ……。
スレ違い気味でスマソ。
0191名無しさん@お腹いっぱい。
01/12/15 21:43ID:???だいたい同意です。
俺も「レジストリ使ってもOK派」。
9x使ってた時は、年に2,3回はOSから再インストールしてたかも。
2kにしてからは再インストールしようと思わない。
0192名無しさん@お腹いっぱい。
01/12/15 23:04ID:???ソフト側で対応するならマルチユーザ用iniもありだと思うんだけど、
デフォルトはexeと同じフォルダに保存するようにした方がいいと思う。
PCを一人で使ってる人が圧倒的に多いだろうから。
オプションでマルチユーザ用を選択するというのはどうか。
0193名無しさん@お腹いっぱい。
01/12/16 00:41ID:???ユーザの設定ファイルはデフォルトで \ユーザ名\Application Data\sample0\ に
setting.iniという名前で保存し、保存場所は変更可能なサンプルプログラムを
作ってみた。
逆に>>192のようなデフォルトがexeと同フォルダバージョンも作ってみようかと思う。
0194名無しさん@お腹いっぱい。
01/12/16 01:36ID:wl5Wiiy9家ではそうかも知れないけど、職場や学校でもPC使ってる人も相当いると思うYO!
もっともシングルユーザ環境で使いまわししてる場合が多いだろうから、
「マルチユーザはオプションで」というのには同意。
ただ>>193のサンプルみたいに、一般ユーザーが各々指定しないとダメ(?)なのは
あまり意味が無いと思う。
普通マルチユーザ設定は管理者がやる事だし。
>181,186
・デフォルトでは本体と同じフォルダ
・↑が(管理者により)書き込み禁止にされてるなら、
本体と同じフォルダ/setting/個人用フォルダ
・↑も書き込み禁止なら、Win標準の個人用フォルダ
・もしくはコマンド/レジストリ/環境変数/ini 等で指定のフォルダ(最優先)
に保存の方が良くない?
0195名無しさん@お腹いっぱい。
01/12/16 01:58ID:???>ただ>>193のサンプルみたいに、一般ユーザーが各々指定しないとダメ(?)なのは
管理者が設定してUsersが書き込み権限のないフォルダに入れておけば
いいんだよ。
0196194
01/12/16 02:09ID:wl5Wiiy9>いいんだよ。
ユーザー数×ソフト数だけ設定しないとイカンのですよ?
0197名無しさん@お腹いっぱい。
01/12/16 02:15ID:???え?なんで?
>>193はデフォルトでマルチユーザ対応なんだよ?
全ユーザ共通にしたかったら一回チェック入れるだけでいいんだよ?
0198194
01/12/16 02:31ID:wl5Wiiy9特に>>193氏のサンプルはWin標準の個人用フォルダ以下ですし。
0199名無しさん@お腹いっぱい。
01/12/16 02:33ID:???でもWin9xの時は2ヶ月持てば(゚д゚)ウマーだった(;´д`)
てなわけで使うなとヒステリックには叫ばないけど、
「なるべくならレジストリ使わないでINI使ってくれ」派。
( ・∀・)あと目くじら立てずにもう少しマターリ逝こうよ
0200名無しさん@お腹いっぱい。
01/12/16 02:45ID:???あぁそうか、設定を共通ではなく、かつフォルダの位置を変更したい
場合か。確かに。
0201194
01/12/16 03:17ID:???でもiniはテキストファイル=>一括変換も可能だから、さほど設定に苦労はしないカモ
…と今更気付く。
少し言い過ぎでした。ゴメンナサイ。(特に>>193氏)
ところで2ch-modeの設定ファイルがいつのまにか消えてて、気付かずage進行してた…
切腹。
0202名無しさん@お腹いっぱい。
01/12/16 18:52ID:???デフォルトがexeと同フォルダに保存するバージョンを作った。
>>194案も考慮してみた。
たいていの人(従来通りexeと同フォルダに保存すればii!!と言う人)には
設定することすら必要ない。今まで通り起動して閉じるだけ。
アンインストールも展開したフォルダごと削除。
マルチユーザに対応すれ!と言う人にも、たぶんチェックボタンやラジオボタンを
押すだけで十分だと思う。
なお、UIはもっと改善したほうが良さそう。あまりうまい言葉が思いつかなかった(;´Д`)
0203名無しさん@お腹いっぱい。
01/12/17 14:28ID:hjuO4DeLWin98で使っていたINIに設定を保存するアプリをWin2000で使ったら
動作がおかしくなる事ってありますか?
(もちろん2000にも対応しているアプリで)
0204名無しさん@お腹いっぱい。
01/12/17 15:41ID:???2000に対応してておかしな動作をするならバグなんじゃないすか
0205名無しさん@お腹いっぱい。
01/12/17 16:26ID:???レスありがとうございます。
設定情報以外にOSに関する情報とかもあったりするのかと思って、
今まで積極的に使えないでいました。これからWin2000で使ってみ
ようと思います。
0206名無しさん@お腹いっぱい。
01/12/17 20:04ID:???アプリによるだろうに。
0207202
01/12/17 22:59ID:???・EXEファイルのあるフォルダ以下にユーザ別フォルダを置く
という項目を追加した。
0208名無しさん@お腹いっぱい。
01/12/18 03:33ID:S7Ds6rRkこんな泥臭いことにはならなかったのに。
Unixの、一般ユーザーでもホームディレクトリの下に
勝手にソフト入れられる世界とは雲泥の差だ。
まあUnixはUnixで、ソフト毎に書式が違ったりして
結構アレなんだが。
もう少しだけUnixを忠実にパクって欲しかった。
MSがTerminal Server Editionの悲劇を繰り返さない
ことを祈る。
0209名無しさん@お腹いっぱい。
01/12/18 03:40ID:???設定を書くというのはどうか。
インストーラなら書けないということはないはずだしわざわざインストール
しようとする人はマルチユーザで使えたほうが望ましいだろうし
0210名無しさん@お腹いっぱい。
01/12/18 03:58ID:???0212名無しさん@お腹いっぱい。
01/12/18 22:27ID:yKqNRrjg>インストーラなら書けないということはないはずだし
どういう意味?
0213名無しさん@お腹いっぱい。
01/12/18 22:58ID:???インストーラはAdminで起動するはずだしそうじゃなければ
個人用インストールになるはずなのでどっちにしても
問題ない
0214名無しさん@お腹いっぱい。
01/12/19 00:31ID:???でも~/直下に環境設定ファイル・フォルダを置きまくるという慣習はとっても嫌ずら。>Unix
~/etc 以下とかにまとめてほすィー。
自前でスクリプトを直せば良いんだろうけど、面倒。
0215名無しさん@お腹いっぱい。
01/12/19 04:53ID:Ysyu3Q6+あと、Windows&Systemフォルダに大量にある謎のファイル。
0216名無しさん@お腹いっぱい。
01/12/19 22:52ID:???0217名無しさん@お腹いっぱい。
01/12/19 23:47ID:???0218名無しさん@お腹いっぱい。
01/12/19 23:56ID:???0219名無しさん@お腹いっぱい。
01/12/20 00:25ID:???必要なさそうなのにわざわざインストーラ使ってるのがあると思われ
0220名無しさん@お腹いっぱい。
01/12/20 10:34ID:VWQtnprYiniファイルアクセス関数
これ使うと速くなるのかな?
0221名無しさん@お腹いっぱい。
01/12/20 15:58ID:???インストーラ使うまでも無いソフトはzipなんかでまとめてくれるだけでイイ。
特にフリーソフトを何個か試用するときはすぐ使えてすぐ削除する操作を
くりかえすから。
0222名無しさん@お腹いっぱい。
01/12/20 16:06ID:???(・∀・)イイ!乳頭の色はピンクが(・∀・)イイ!
0223名無しさん@お腹いっぱい。
01/12/20 23:02ID:???NTでレジストリにリダイレクトする機能が効かなくなって
嫌だな
0224名無しさん@お腹いっぱい。
01/12/21 00:33ID:???時くらいしかないんじゃ?
0225名無しさん@お腹いっぱい。
01/12/21 21:55ID:???0226名無しさん@お腹いっぱい。
01/12/23 02:53ID:???0227名無しさん@お腹いっぱい。
01/12/23 03:38ID:???0228名無しさん@お腹いっぱい。
01/12/23 07:01ID:U1IX1q790229名無しさん@お腹いっぱい。
01/12/24 06:46ID:???CMultiINIクラスをこっそりアプするか……
0230名無しさん@お腹いっぱい。
01/12/25 14:49ID:???0231名無しさん@お腹いっぱい。
01/12/26 22:09ID:OQUIlWc90232名無しさん@お腹いっぱい。
01/12/26 22:33ID:???どうでも、(・∀・)イイ!!
0233名無しさん@お腹いっぱい。
01/12/27 01:29ID:???おおきなお世話じゃ!!!
0234seven
01/12/27 03:21ID:g/oMEvHn少なくとも、体験版でバリバリレジストリを汚すのは、止めて欲しい。
ぐるぐるまわるけど、HDDも安くなったんだし、exeとiniは、同じ場所で良いのでは?
0235名無しさん@お腹いっぱい。
01/12/27 03:27ID:???0236名無しさん@お腹いっぱい。
01/12/27 03:32ID:???0237名無しさん@お腹いっぱい。
01/12/27 03:56ID:???HDDの容量は問題にしてないと思われ
0238名無しさん@お腹いっぱい。
01/12/27 03:56ID:???0239名無しさん@お腹いっぱい。
01/12/27 03:58ID:???0240名無しさん@お腹いっぱい。
01/12/27 05:45ID:X7s+dYNEプログラム側では、
system wide な読み込み、個人データ読み書きとかのメソッド使うだけで、
後ろでなにやってるかは気にしないと。
0241名無しさん@お腹いっぱい。
01/12/27 07:17ID:???あってもみんなが使わないと意味ない
というかそれがまさにレジストリAPIでは…
0242名無しさん@お腹いっぱい。
01/12/28 00:12ID:???CMultiINIDialogクラスをこっそりアプしてみるか……
0243名無しさん@お腹いっぱい。
01/12/29 03:40ID:???ツールバーもねぇし。
検索トロイし。
拡張子大文字で付けるし。
比較機能ぐらい付けろや。
0244名無しさん@お腹いっぱい。
01/12/29 16:29ID:???プロファイルマネージャってのはNetscape6についてるやつ
0245名無しさん@お腹いっぱい。
01/12/29 17:16ID:UPGWIUhuもってくればいいなじゃいかね。
>>240 のいってるのってまさに GConf やんかー。
http://cj3134981-a.kkbnj1.kt.home.ne.jp/documents/gconf-1.0.x-refs/html/
0246名無しさん@お腹いっぱい。
01/12/29 17:30ID:???サンプルとして見てみたい。
0247名無しさん@お腹いっぱい。
01/12/29 20:25ID:JSwjUjWm/ / = -
/ / = -
/ / = - はいはい1000ゲットズサーー
/ / っと。
/ /
-― ̄ ̄ ` ―' , _
, ´  ̄" ー _=
_/ ` 、 =
, ´ ,ヘ ヽ =
,/ ,| ● ,/
と,-‐ ´ ̄ r( `' く 三 = (⌒
(´__ 、 `( ,ヘ ヽ 三 =(⌒
 ̄ ̄`ヾ_ ● _> ( ⌒ (⌒
,_ \ `' __ -‐ ´ 三=(⌒ (⌒
(__  ̄~" __ , --‐一~ ̄ ̄ ̄ 三 =(⌒ (⌒
 ̄ ̄ ̄ =(⌒(⌒ __
0248名無しさん@お腹いっぱい。
01/12/29 22:19ID:???GConf は GNOME の一部だったはず。
だから 基本的に UNIXer 向けじゃないかと。
あくまで一例として挙げたまで。
レジストリ API と INI API をぶんどって
ほにゃららするような DLL 作らんかね。
0249名無しさん@お腹いっぱい。
01/12/30 01:46ID:???薄いラッパならGoogleですぐヒットするほど公開されてる。
0250もなか
01/12/30 13:46ID:???INI API ぶんどりは賛成ナリ。INI への読み書きが早くなればなにより。
ついでにタブ区切り式定義ファイルとかも
読み込みだけでいいから出来たらイイかも。
辞書ソフトとかに応用が……(あ、スレ違いになりつつある)
0251名無しさん@お腹いっぱい。
01/12/30 18:26ID:ByUBKubsここで挙げられたいろんな置き場所をユーザが選べるようにするってのは?
んで、レジストリ & INI API で書き込まれたものは
全部そのユーザが指定した場所の指定した形式に落されると。
あーでも、レジストリ API をぶんどるのは危険かなぁ。
Windows 自身が使ってる部分とかもあるだろうし。
バックエンド切り離せればなぁ...
設定を ACAP から引っ張ってきたり、LDAP から引っ張ってきたり...
いろいろ楽になると思うんだが。
プログラマーも楽だろうし。
0252名無しさん@お腹いっぱい。
01/12/30 18:53ID:???0253名無しさん@お腹いっぱい。
01/12/30 19:45ID:ByUBKubs普通に INI とかレジストリを使ってる既存のアプリケーションを
変更することなく設定の置き場所変えられる点。
新しい方法考えたとしても、結局プログラマがそれに対応しなきゃ使えないわけだし。
だったら API を置き換えるしかないんじゃないかと。
0254名無しさん@お腹いっぱい。
01/12/31 14:28ID:???0255名無しさん@お腹いっぱい。
01/12/31 17:58ID:???素人な漏れには DLL 置き換えみたいな方法しか思いつきません。
なんか危険な気がする。
他にどんな方法が考えられます?
0256名無しさん@お腹いっぱい。
02/01/01 05:38ID:???0257名無しさん@お腹いっぱい。
02/01/01 16:43ID:???0258名無しさん@お腹いっぱい。
02/01/01 19:23ID:???なんか素人丸出しな意見だね。
0259名無しさん@お腹いっぱい。
02/01/02 21:52ID:???素直にうけた。
0260名無しさん@お腹いっぱい。
02/01/07 02:22ID:Y8pMdg17素直を通り越してひねくれにいっとるわい
0261名無しさん@お腹いっぱい。
02/01/13 07:39ID:ki6cr+tg0262名無しさん@お腹いっぱい。
02/01/13 07:42ID:???0263名無しさん@お腹いっぱい。
02/01/13 08:01ID:???0264名無しさん@お腹いっぱい。
02/01/16 01:52ID:???c:\Documents and Settings\ユーザー\Local Settings\Application Data
とかのディレクトリを求めるにはどうすればいい?
なんかいいやりかたないかな
0266名無しさん@お腹いっぱい。
02/01/20 13:44ID:???たいしたソフトなら別に良いんだけどっていうのはわがままですか?
,. 、
/ / = -
/ / = -
/ / = - はいはい0x10Aゲットズサーー
/ / っと。
/ /
-― ̄ ̄ ` ―' , _
, ´  ̄" ー _=
_/ ` 、 =
, ´ ,ヘ ヽ =
,/ ,| ● ,/
と,-‐ ´ ̄ r( `' く 三 = (⌒
(´__ 、 `( ,ヘ ヽ 三 =(⌒
 ̄ ̄`ヾ_ ● _> ( ⌒ (⌒
,_ \ `' __ -‐ ´ 三=(⌒ (⌒
(__  ̄~" __ , --‐一~ ̄ ̄ ̄ 三 =(⌒ (⌒
 ̄ ̄ ̄ =(⌒(⌒ __
0267名無しさん@お腹いっぱい。
02/01/20 14:17ID:???過去ログにあったような。
>>266
確かに「ちょっとした設定しかないのにレジストリを使われると萎える」
という意見は多い。でもその理由は「なんとなく」ってのもまた多い。
俺は、使っているレジストリエントリをドキュメントに書いてくれたり、
アンインストーラで消してくれるソフトなら、ちょっとした設定にレジストリを
使ってもいいと思ってる。
0268名無しさん@お腹いっぱい。
02/01/20 16:30ID:???あとは自分で調べれ
ちなみにApplication DataはCSIDL_APPDATAだ。
0269名無しさん@お腹いっぱい。
02/01/29 15:39ID:???>確かに「ちょっとした設定しかないのにレジストリを使われると萎える」
>という意見は多い。でもその理由は「なんとなく」ってのもまた多い。
こういう人種も。
http://pc.2ch.net/test/read.cgi/win/1007435105/637-640n
0270名無しさん@お腹いっぱい。
02/01/29 17:11ID:???レジストリを消しても再構築しないとサイズは元に戻らないよ。
ちょっとした設定ならINIがいい。
0271267
02/01/29 19:27ID:???じゃなくて、レジストリを使うかどうかの判断に「ちょっとした設定」か
「重要な設定」かはあまり関係ないのではないかと。
> 「ちょっとした設定しかないのにレジストリを使われると萎える」
っていうと、まるで重要な設定ならレジストリを使ってもいい、みたく聞こえるじゃない?
でも実際は重要な設定だろうとなかろうとINIの方がバックアップなどに便利だし、
レジストリを使うなら重要な設定だろうとなかろうとレジストリを使ってることには
変わりないんだし。
0272267
02/01/29 19:35ID:???> 将来的にはレジストリにアプリのデータを保存しないようにすると、なにかでよんだ気がする。
> 多分DOS/V magazine。
ってやつ。本当だとしたらうれしいんだけど、いつのDOS/V magazineかなぁ。
0273久しぶりにage
02/01/29 20:20ID:SBBxg6cUiniは初期化するもんであって
どちらもアプリケーションのデータを置くものじゃないのね。
つーか、Application Dataに置くのが正解。
C#のIDEで有名なSharpDeveropとかIrvineはそうしてる。
あとAPIぶんどりの話が出てたけどAPIって本来の目的と外れた場所で
使われてることもあるから全然関係無いのがまともに動かなくなったりするよ。
たとえば.url(インターネットショートカット)とか。
0274名無しさん@お腹いっぱい。
02/01/29 21:19ID:???>>271
多分だがそういうことではなくて、シェル拡張とか
アンインストーラの登録とか、拡張子関連づけとか、
「レジストリに書き込まねば実現できない」
ことってあるでしょ?
それのことでは無いかと思われ。
どっちにしろデフォでONにされるとムカっと来るが(藁
>>273
素で疑問に思ったことなので気を悪くされたらスマソ。
ではINIって元々どういう事が記憶されてたの?
漏れはPC触りだしてそういうことに手を突っ込むように
なってから、INIは設定ファイルだとバカーリ思ってた…
INIがInitializeの略だと知ったのは、実は去年…
0275名無しさん@お腹いっぱい。
02/01/29 21:38ID:???名前の通りにいけばそうだけど、じゃあアプリケーションが
HKEY_CURRENT_USER\Software に登録するものって例えば何?
MS自体がINI→レジストリに設定を保存するように推奨してるんだから、
これらはもともと同じ働きをするものと考えて良いんじゃないかな。
>>274
INIは設定ファイルだよ。ファイルのプロパティ見てごらん。
0276名無しさん@お腹いっぱい。
02/01/29 21:41ID:???>INIって元々どういう事が記憶
今のレジストリと同じ。
元々OSの初期化のために作られて、ついでにアプリケーションの設定にも使われた。
初期化のためにあるから書き込みよりも読み出し用って感じ。
読み取り用のAPIには数値を取得するものがあるけど書き込み用には数値用のが無くて、
数値を書き込む場合は一度文字列に変換してから文字列として書き込まないといけなかったりする。
当然、今現在はただのレガシーAPIで、
開発者用のMS配布のドキュメントには
>Note This function is provided only for compatibility with 16-bit Windows-based applications.
>Applications should store initialization information in the registry.
と、ちゃんと書かれてある。
0277なんか今日は激重だね
02/01/29 22:01ID:???>HKEY_CURRENT_USER\Software
今現在の使われ方をするためのものとして存在してるけど、"ついで"として使われてるだけ。
ちなみに俺はiniファイル派だったりする。
自分で作るアプリは全てiniに設定を保存してる。
たぶん世の中がXMLで設定を保存するようになってもiniファイル使ってると思う。
0278名無しさん@お腹いっぱい。
02/01/29 22:49ID:???あんたの好みという以外の根拠は?
0279age
02/01/29 23:42ID:SBBxg6cU0280名無しさん@お腹いっぱい。
02/01/29 23:46ID:???アプリの設定は含まれないよな?
0281名無しさん
02/01/30 16:18ID:???MozillaなんかはApplication DataにブックマークやCookieを保存するけど
これはデータとも言えるし設定とも言えるし…
0282名無しさん@お腹いっぱい。
02/01/30 16:47ID:???64KBを目安に決めれと言ってる
0283名無しさん@お腹いっぱい。
02/01/30 19:38ID:???でもさんざんいじられてるのでそのうち新規ウィンドウズインストールできれいに消すことになる
0284名無しさん@お腹いっぱい。
02/01/30 20:02ID:???だからさー、そういうときはいじられたくない根拠を書こうや
0285名無しさん@お腹いっぱい。
02/01/30 20:16ID:???それは64KBを超える場合はレジストリにしろってこと?
ソースを教えて欲しい。
設定とアプリのデータについて個人的には、
「データ」はおおざっぱに言えば操作によって増減するファイルのようなもの、
(例えばブックマークやキャッシュファイルやクッキーなど)
「設定」はそれ以外のアプリに関する設定だと思っていた。
思いっきりローカルルールだけど。
0286名無しさん@お腹いっぱい。
02/01/30 21:47ID:r+HtcEpCレジストリを使う人のためにレジストリ礼儀作法を厳しく指示するべき…
たまに大量のデータをレジストリに投げ入れたりする酷いプログラムに出くわす.
高速に何度もレジストリにアクセスするようなプログラムまである.
NT系でも9x系でも,レジストリをダイエットさせる再構築には
再起動が必要不可欠だから,運用形態によっては悲惨だ.
0287_
02/01/30 23:22ID:EMJO49PAその為のWindowsロゴだったりするんだけどね。
http://www.microsoft.com/japan/windows/logo/
ini使ってると、マルチユーザーでまるで使い物にならなくなるんだよね。
反面、個人で使う場合、iniの方が便利な事も・・・
0288名無しさん@お腹いっぱい。
02/01/31 00:02ID:???逆逆。64KBを超える場合はApplication Dataにしろって書いてある。
http://www.microsoft.com/japan/winlogo/downloads/AppSpec22j.doc
> ・HKCU (HKEY_CURRENT_USER) レジストリハイブは、小さなデータ
> (約 64K) の保存やユーザーごとのポリシー設定の保存に適しています。
(中略)
> ・大きなファイルベースのデータは、[Application Data] フォルダに
> 入れなければなりません。たとえば、Internet Explorer の一時
> インターネット キャッシュはユーザー プロファイルに格納され、
> レジストリには格納 されていません。
> ・インストール時に、アプリケーションで HKCU と HKLM に合計 128K を
> 超えるデータを保存してはいけません。ただし、HKEY_CLASSES_ROOT
> は例外です。
■ このスレッドは過去ログ倉庫に格納されています