トップページ⇒software
682コメント299KB

レジストリ vs プライベートINI

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/11/22 18:00ID:kWO77Bur
フリーソフトで設定を保存するにはどちらが良いか。
プログラマの視点から、逆にユーザの視点から、
それぞれの利点や欠点について意見を聞かせてください。
0002名無しさん@お腹いっぱい。01/11/22 18:38ID:???
                           ,. 、
                           / /  = -
                           / /  = -
                           / /  = -    はいはい2ゲットズサーー
                          / /        っと。
                       / /    
               -― ̄ ̄ ` ―'  , _
          , ´                 ̄" ー         _=
        _/                            ` 、  =
       , ´                   ,ヘ        ヽ   =
    ,/   ,|                     ●        ,/
   と,-‐ ´ ̄                r(   `'      く   三 =     (⌒
  (´__   、              `(   ,ヘ       ヽ    三 =(⌒
       ̄ ̄`ヾ_               ●         _>   ( ⌒    (⌒
          ,_  \             `' __   -‐ ´   三=(⌒   (⌒
        (__  ̄~" __ , --‐一~ ̄ ̄ ̄      三  =(⌒  (⌒
           ̄ ̄ ̄                =(⌒(⌒  __
                                
0003名無しさん@お腹いっぱい。01/11/22 23:12ID:???
みんなINI派なんだろうな……
0004名無しさん@お腹いっぱい。01/11/23 00:54ID:???
んじゃあINIに一票。ユーザーの視点です。
0005名無しさん@お腹いっぱい。01/11/23 01:58ID:???
フロッピーに入る程度のソフトなら、出先で使えるINIの方がありがたい。
0006名無しさん@お腹いっぱい。01/11/23 02:02ID:M3srOtYq
INIで設定情報記録しつつレジストリにまで書き込んでるバォケェーなソフトないよね?
0007名無しさん@お腹いっぱい。01/11/23 02:52ID:???
ini派だけど、エディタみたいな、設定が多い奴はレジストリの方が早いだろうねぇ。
普段レジストリでも、iniファイル書き出し機能があって、iniファイルを引数で指定できて、おまけに、設定画面からレジストリ削除が出来れば良いなぁと思う。
0008名無しさん@お腹いっぱい。01/11/23 03:04ID:KaMzMKWN
なんかWin32APIヘルプとか見ると、iniは使うなレジストリ使えとか
書いてあるので、ついついレジストリ使うような仕様にしてしまってました。
でも最近はiniに回帰しつつある・・・
0009名無しさん@お腹いっぱい。01/11/23 03:08ID:???
レジストリだとテストの際、値を書き換えるのが面倒臭い。
ini の方が扱いやすい。
0010名無しさん@お腹いっぱい。01/11/23 03:09ID:???
iniがいい。
レジストリがぶっくぶく太るのはイヤ。
0011名無しさん@お腹いっぱい。01/11/23 03:14ID:???
レジストリだと、OSを再インストールしたら全部設定が飛んじゃう・・・
0012もなか01/11/23 03:19ID:???
レジストリって嫌われるよね。
だけどどこに書き込まれてるかちゃんと README に書いてあれば
おれは悪くないと思う。そういう情報があれば移行の手段もあるし、
何よりも早いじゃない。
危険というなら、初心者がシステムディレクトリ開くのだって危険。
肥大化は scanreg で対応。

ini を使ってても IrfanView や Dibas(どっちも好きなソフトだけど)
みたいに、Windows ディレクトリに作っちゃうのはどうかと思う。
0013名無しさん@お腹いっぱい。01/11/23 03:23ID:???
>>7
いいかもしんない!

>>8
MSはレジストリを推奨してるんだよねぇ
理由はなんなんだろ・・・
0014名無しさん@お腹いっぱい。01/11/23 03:30ID:???
>>12
Windows ディレクトリに作っちゃうのはどうかと思う。

それはたぶん皆一致の意見かな。
ここもわざわざレジストリ vs "プライベート"INIスレだし
0015名無しさん@お腹いっぱい。01/11/23 03:33ID:???
プログラマ板でもレジストリに関してのスレ
どっちかっていうと作り手側の意見かな。
http://pc.2ch.net/test/read.cgi/prog/997370579/l50
0016もなか01/11/23 03:47ID:???
>>14
うん?
>"プライベート"INI
って、そのソフト固有の INI って意味じゃなかったのか。
(WIN.INI とかじゃなく)
不勉強かもしれないが、あまり聞かない言葉なんで誤解したよ。
0017名無しさん@お腹いっぱい。01/11/23 03:54ID:LPNYdIET
>>16
Windowsフォルダのiniに書き込むのはWriteProfileString()で、
他のフォルダ(普通はソフト本体と同じフォルダとか)のiniに書き込むのが
WritePrivateProfileString()だからプライベートって呼んでるんだけど、
もしかしてこれってメジャーな呼び方じゃないのかな
0018もなか01/11/23 04:08ID:???
>>17
WriteProfileString() なんて使ったこと無いからピンと来なかった。
それにしても、遅いよね。WritePrivateProfileString()
0019名無しさん@お腹いっぱい。01/11/23 04:17ID:???
>>18
もちろん俺も使ったことありませんヽ(´ー`)ノ <WriteProfileString()
0020名無しさん@お腹いっぱい。01/11/23 04:26ID:J/mYbkeb
レジストリの利点って余りないよな。
0021名無しさん@お腹いっぱい。01/11/23 04:42ID:LPNYdIET
推奨されてるのに利点が・・・
0022名無しさん@お腹いっぱい。01/11/23 04:47ID:???
デビュー当時マルチユーザーとか一元管理できるとか、そんな触れ込みだったよね。
つか、昔も%windir%に無断でiniファイルを(大量に)作られたり、win.iniがぐちゃぐちゃになったりで嫌な思いしたんだけど、結局発端は作者のマナーなんだよねぇ。
0023名無しさん@お腹いっぱい。01/11/23 05:54ID:???
Windows 2000以降だと\Program Files以下に書き込むにはPower Users以上
が必要だし、ユーザーごとに設定を変えられないからじゃないかなあ。> 推奨
0024名無しさん@お腹いっぱい。01/11/23 09:09ID:LPNYdIET
>>23
でもそれらの理由ならINIでもいいんだよね・・・
高い権限が必要なフォルダにインストールしなければいいわけだし、
(そもそもINIファイルを使っているのでフォルダをどこに移動してもいい)
ユーザごとにINIファイルを分ければ設定も変えられるし。
0025名無しさん@お腹いっぱい。01/11/23 09:30ID:JtQLLOKn
やっぱりWindowsの再インストールが面倒くさいのがレジストリの嫌なとこだな。
良くて、レジストリをregファイルに書き出しておく機能があるくらいだもの。面倒臭すぎ。
iniファイルならCD-Rや外付けHDDにディレクトリごとコピーするだけ。
0026名無しさん@お腹いっぱい。01/11/23 10:01ID:/f024EYO
GMASK逝ってよし!
勝手にWIN.INIに足すなボケ!
0027名無しさん@お腹いっぱい。01/11/23 10:02ID:???
逆に言うとiniファイルの利点って移動が楽ってことだけだよね。
それが大きいんだけど。
0028名無しさん@お腹いっぱい。01/11/23 10:03ID:ill+EfSx
.ini ファイルだと、ドキュソなユーザがメモ帳で勝手に編集しちゃうし、
第一、ユーザごとに設定を分けられない。

レジストリだと、無理に編集するにはレジストリエディタを使わざるを得なくなり、
そういうドキュソユーザに対して、かなりハードルになる。
それに HKCU 使えば、簡単にユーザごとに設定を分けられる。

さらに文字列じゃなくても、たとえば DWORD 値を直接読み書きできるので、
.ini ファイルの記述をチェックしなくていい。

ファイルだと、ディレクトリごと消されたり、勝手に移動されたりするけど、
レジストリだと、そんなバカなユーザからかなり守れる。
いわゆる「フールセーフ」ってことかな。
0029名無しさん@お腹いっぱい。01/11/23 10:12ID:???
プログラマ板も見て総合的に判断すると、
レジストリ + INIのような設定の簡易移動
だと良さそうでは?レジストリ設定のインポート・エクスポート機能。
これの逆で
INI + マルチユーザ対応、64KBの壁、文字列以外の記録、etc
は大変なので。
0030名無しさん@お腹いっぱい。01/11/23 13:05ID:???
家族一人一人でログインユーザ作ってるから、
マルチユーザに対応してないINIは使いにくい。
INIでも Special Launch とか シン覚え書 なんかは
マルチユーザ対応してるのでいい。

レジストリもバッチファイル作っとけば保存・復元ラク。
例えば、こんな。
REM *** Becky! Internet Mail ***
REGEDIT /E E:\Reg\RimArts.reg "HKEY_CURRENT_USER\Software\RimArts"
REM *** 秀丸エディタ ***
REGEDIT /E E:\Reg\Hidemaru.reg "HKEY_CURRENT_USER\Software\Hidemaruo\Hidemaru"

復元時は上記のregファイルを実行していくだけ。
0031名無しさん@お腹いっぱい。01/11/23 21:51ID:LPNYdIET
XPが出たし、まぁこれがすぐに浸透するかどうかは別として、
これからマルチユーザ対応は当たり前にやっていかなきゃならないと思うよ。
0032名無しさん@お腹いっぱい。01/11/23 22:03ID:9UILC56c
でもパソコンを複数人で共有するってそんなにあることなのかな?
会社、学校ならインストールするようなソフトは
レジストリを利用したマルチユーザー管理も納得だけど
オンラインソフトなどを入れるのは個人使用のパソコンが多いだろうし
その場合、家族と共有してる人はそれほど多いのかなと・・・
結局一人一台代わりと基本なのでは

長々とスマンだけど言いたいことは
「INIの方がうれしいよう!」ってことです
0033名無しさん@お腹いっぱい。01/11/23 22:41ID:???
アプリケーション名+ユーザー名.INIで管理したらどう?
レジストリはユーザーごとに用意する必要がなくなって
ユーザーの参照くらいになると思うけど。
インストール後の再起動でレジストリのエラーになると
古いレジストリで更新情報が行方不明になるから
INIのほうがありがたいんだわ。
0034名無しさん@お腹いっぱい。01/11/23 23:04ID:???
>>33
まぁINIファイルをマルチユーザ対応にすることはそれほど難しいことじゃないです。
おっしゃるようにファイル名をユーザごとに変える方法や、ユーザごとにフォルダを
分ける方法など。
ただ、レジストリなら簡単なのにINIなら難しいという問題はその他にも
既出のように64KBの壁や、文字列以外の記録、初心者が誤操作しやすい(iniを謝って削除するなど)
などがあるので、そのへんはどう対応するのかと。

気になったのは
>インストール後の再起動でレジストリのエラーになると
>古いレジストリで更新情報が行方不明になるから
で、レジストリを使う人にはけっこう重要なことかもしれないので
もう少し詳しく教えてもらいますか?
「古いレジストリで更新情報が行方不明になる」とは?
0035名無しさん@お腹いっぱい。01/11/23 23:49ID:???
>>34
>「古いレジストリで更新情報が行方不明になる」とは?
壊れたレジストリが破棄されて、バックアップが適用されるって事だろ。
0036名無しさん@お腹いっぱい。01/11/24 00:03ID:???
>>35
>古いレジストリで
あぁ、エラー前のレジストリが適用されて、って意味か。
それは確かにINIの方がいいかもなぁ。
0037名無しさん@お腹いっぱい。01/11/24 00:19ID:???
マルチユーザー環境だとレジストリが有利っつーのはウソでしょ。
例えば1ユーザーで複数アカウントを切り替えて使ってる場合
(普段用と管理用…等)レジストリよりINIの方が有利。

個人的には>>33,34のような方法でマルチユーザに対応しつつ、
コマンドライン等から別のINIを適用可、ってのがマンセー。
自分が知ってる範囲内では、WWWC、Irvine、xyzzy、limechat等が
この方式。
あとFFFTP等のini/レジストリ切り替え式も良いかも。

ちなみに64k、書換、バイナリデータ対策は、iniに拘らなければ
即解決。
0038名無しさん@お腹いっぱい。01/11/24 02:17ID:???
>>37
FFFTP使ってたけどそんな設定があったなんて知らなかった。
それいいね。基本的に開発時に迷ったらユーザの選択式にすればいいと思う。
0039名無しさん@お腹いっぱい。01/11/24 03:03ID:???
iniが遅いってのはどう?レジストリと比べて体感的に変わる?
0040名無しさん@お腹いっぱい。01/11/24 03:41ID:???
>>39
QXでは実感できるが、自分で実験したことはないので微妙。
つか、エディタ並に設定項目が多いような物以外は、超能力者でもない限り、iniでもregでもわからないはず。
0041名無しさん@お腹いっぱい。01/11/24 03:45ID:???
>>37
>マルチユーザー環境だとレジストリが有利っつーのはウソでしょ。
>ちなみに64k、書換、バイナリデータ対策は、iniに拘らなければ
両方とも、"開発者側から見ると"楽で良いねというお話なの。

# 小物の場合は特に独自形式で保存なんかしたくないなぁ。
0042もなか01/11/24 04:07ID:???
>>39 書き込みは、はっきりレジストリより遅いですよ。
0043名無しさん@お腹いっぱい。01/11/24 11:34ID:???
>>41
有利なところはなく、開発者から見て楽なだけなんだね。成る程。
では、今度からレジストリに保存するソフトは、
開発で楽をしてユーザに負担を強いるソフトと思うことにしよう。
0044名無しさん@お腹いっぱい。01/11/24 12:28ID:???
>>43
再インストールする前に%userprofile%をバックアップするのって、そんなに負担?
移動プロファイルならバックアップする必要すらないし。
00453701/11/24 12:49ID:???
>>41 はM$が死んだら苦労するだろうね。
独自形式なんて他のOS(特にUnix)では割と常識。

>>44
regファイルへの書き出しや移動プロファイルはともかく、
レジストリ本体のバックアップなんて気持ち悪くてできん。
M$自体、自身が定めたガイドに従ってないから、
何が起こることやら…
■ このスレッドは過去ログ倉庫に格納されています