レジストリ vs プライベートINI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/11/22 18:00ID:kWO77Burプログラマの視点から、逆にユーザの視点から、
それぞれの利点や欠点について意見を聞かせてください。
0149名無しさん@お腹いっぱい。
01/12/08 08:46ID:???0150名無しさん@お腹いっぱい。
01/12/08 11:34ID:???アンインストーラに付けろってことか
0151もなか
01/12/08 20:40ID:???いや、繰り返しになるけど、アンインストーラの仕様としては、
消す場合はバッサリ消した方がいいんじゃないの?
おれが言いたいのは「消すけどいい?」と他のユーザーに訊くのは管理者の責任で
ソフト側はそこまで用意する必要ないんじゃないかってこと。
0152名無しさん@お腹いっぱい。
01/12/08 23:02ID:???いや、上の英文のこと。
0154名無しさん@お腹いっぱい。
01/12/09 10:19ID:???話が及んでいくねぇ。
汎用のインストーラ/アンインストーラでこういうオプションは提供
できるのかな??
情報求ム。
0155名無しさん@お腹いっぱい。
01/12/10 06:55ID:???オプションで設定の保存先を変更できるようにすること。
保存先情報などのシステムワイドな情報はexeと同ディレクトリに保存。
こうすることで>>88のような各環境に対して様々なセットアップパターンを提供できる。
各ユーザーの設定を削除できるアンインストーラが含まれているのが望ましい。
各ユーザーの設定を残すのならば、アンインストーラを使わずにインストールした
フォルダを削除するだけでよい。アンインストーラを使ってもよいがその場合、
アンインストーラには各ユーザーの設定を残すか削除するかの選択オプションが
含まれているのが望ましい。
そうすればユーザーから「なんて柔軟性のあるソフトなのかしら……好き(ぽっ」
となること間違い無しだ。
0156名無しさん@お腹いっぱい。
01/12/10 18:43ID:hqvM6/6wどうやって、Application Dataのフォルダを取得するの?
0157名無しさん@お腹いっぱい。
01/12/10 20:13ID:HA0PHITT今MSDN見たんだけど、Windows95だとIE4.0以上がインストール
されてないとダメってこと?
0158みのもんた
01/12/11 11:09ID:???A.Windows95をサポート外にする
B.ユーザーにIE4.0以上をインストールすることを促す
C.SHGetSpecialFolderLocationを使わず自力でApplication Dataを探す
D.Windows95は例外としてexeと同じフォルダに置く
0159名無しさん@お腹いっぱい。
01/12/11 13:55ID:???そこまでコーディングに手間かけてられない
(んなヒマあったらもっと別のトコロに力注ぎたい&注いで欲しい)
ので、素直に多重インストールOKなコーディング、
EXEと同じフォルダ決めうちで構わないと思うが…
0160名無しさん@お腹いっぱい。
01/12/11 19:23ID:???作っていただきたい。
0161名無しさん@お腹いっぱい。
01/12/11 21:24ID:???IE4.0以上をインストールしてなくても、Windows95に
\ユーザ名\Application Dataフォルダ自体はあるんだよね?
(できれば正確なパスを教えて欲しい)
0162名無しさん@お腹いっぱい。
01/12/11 21:26ID:???確かIE4.0以前のWindows95には存在しなかったはず。
0163名無しさん@お腹いっぱい。
01/12/11 21:30ID:???0164名無しさん@お腹いっぱい。
01/12/12 00:52ID:???NT系ならデフォルトで
ユーザ名\Application Data\アプリケーション名\
のパスを、9x系ならデフォルトで
exeがあるフォルダ\ユーザ名\
のパスを取得し、システムワイドiniファイルがあれば
それに従ったパスを取得する関数を作ってみた。
とりあえず動く用でエラーチェックなど細かいことはしていない。MFC。Win2kで確認。
>>156-158よりWin95だとDLLのバージョンの問題があるらしく、
DLLバージョンチェックがめんどうなので乱暴にNT系と9x系で
デフォルトフォルダの場所を分けたけど、バージョンチェックとか
細かいこともやってくれる人がいたら幸せ。
0166名無しさん@お腹いっぱい。
01/12/12 03:47ID:???CSIDL_APPDATAをサポートしない環境ではSHGetSpecialFolderLocationが
E_INVALIDARGを返すから、戻り値を見て自力で計算するかどうか決めるほう
がOSのバージョンチェックよりもいいと思われ
どうしてもバージョンチェックでやるとしても、シェル関数の場合はDLLバージョン
を見るべき。
http://msdn.microsoft.com/library/en-us/shellcc/platform/Shell/versions.asp
0167名無しさん@お腹いっぱい。
01/12/12 03:51ID:???0168名無しさん@お腹いっぱい。
01/12/12 03:56ID:???書き込めない場所だったら困るなあとか。
せめて書き込めるかどうかチェックしてほしい。
0169名無しさん@お腹いっぱい。
01/12/12 10:30ID:???0170名無しさん@お腹いっぱい。
01/12/12 10:36ID:???それは設定する人間(たぶん管理者)がDQNぽいけど、
確かにプログラムでチェックしたほうが親切には違いない。
0171名無しさん@お腹いっぱい。
01/12/12 12:31ID:???http://www.microsoft.com/downloads/release.asp?ReleaseID=30340&area=search&ordinal=1
0172名無しさん@お腹いっぱい。
01/12/12 13:04ID:???あれ?「shfolder.dllを入れる」ってのはshfolder.dllを
ユーザーにインストールしてもらうって意味じゃないよね?
0173名無しさん@お腹いっぱい。
01/12/12 13:29ID:???やっぱShFolder.dllか。
0174名無しさん@お腹いっぱい。
01/12/12 13:48ID:P/hABMeLパーミッションもホスィ。
0175名無しさん@お腹いっぱい。
01/12/12 16:45ID:???0176名無しさん@お腹いっぱい。
01/12/12 17:21ID:???0177名無しさん@お腹いっぱい。
01/12/13 01:26ID:???ライセンス的に再配布可能であることがはっきりしてたほうが
安心かと思って
0178名無しさん@お腹いっぱい。
01/12/13 11:27ID:???おまえ気が利くな
0179名無しさん@お腹いっぱい。
01/12/13 16:48ID:???手に入らなくて鬱
0180名無しさん@お腹いっぱい。
01/12/14 00:19ID:???shfolder.dll+SHGetFolderPath版てことで。
0181ini の保管場所
01/12/14 01:37ID:???(1)コマンド指定フォルダ
(2)プライベートフォルダ(c:\document and settings\... 等)
(3)本体と同じフォルダ
設定変更時/終了時の書き込み先優先順
(1)コマンド指定フォルダ(指定されている場合)
(2)起動時と同じフォルダ(←ミソ)
(3)プライベートフォルダ(user名が取得できた時のみ)
(4)本体と同じフォルダ(書き込み可能な場合)
としとけばいいんじゃねーノ?
んで、
・ユーザー毎に設定を分けたい場合は、プライベートフォルダに
iniを個別に作っておく。(win2kならdefault userを使うとラク)
あるいはショートカットのコマンド指定で振り分け。
(これも環境変数%user%を使えばラク)
・シングルユーザで使うorマルチユーザ環境で設定を共有したい場合は
コマンド指定or本体と同じフォルダにiniを置く。
とすりゃいい。
あと以下は必須じゃないが
・レジストリや環境設定によるフォルダ指定機能
・ツールやプロパティでiniを移動する機能
・本体フォルダに書き込めない場合の次候補(temp等)
なんかも用意しとくと完璧だと思われ。
0182スマソ
01/12/14 01:40ID:???↓
○ 環境変数%username%
0183名無しさん@お腹いっぱい。
01/12/14 04:28ID:???作者としても、ユーザとしても。
0184名無しさん@お腹いっぱい。
01/12/14 04:40ID:???同意。
実際にこのシステムのソフトが作られたとしても
「分かりにくい」とかいってまたここで叩かれそう。
0185名無しさん@お腹いっぱい。
01/12/14 10:02ID:???iniの保管先をシステムワイドiniじゃなくて優先順位で区別するみたいだけど
>・ユーザー毎に設定を分けたい場合は、プライベートフォルダに
> iniを個別に作っておく
や
>・シングルユーザで使うorマルチユーザ環境で設定を共有したい場合は
> コマンド指定or本体と同じフォルダにiniを置く。
みたいにアプリケーションを使う前に、ユーザに前処理が必要になるってのは
どうもなぁ……
0186名無しさん@お腹いっぱい。
01/12/14 23:29ID:???スマソ。説明が悪かった。(特に後半は蛇足)
一応ソフトがデフォルトでiniを保管する場所は
・マルチユーザ環境ならプライベートフォルダ。
・プライベートフォルダに書き込めない(≒シングルユーザ)なら、
本体と同じフォルダ。
で、保存する場所を変えたい場合にのみ
・手動でiniを移動させる。
・コマンド(や環境変数、レジストリ)で強制的に指定する。
のだと考えてオクレ。
コレで
・マルチユーザーのことを考えろやゴルァ。
・マルチユーザ環境で設定を共有できなきゃイヤン。
・iniは本体と同じ位置がイイ!(持ち歩きたい)
・面倒なのは逝ッテヨシ。
といった要求をすべて満たせると思うのだが。
0187名無しさん@お腹いっぱい。
01/12/15 15:29ID:???0188もなか
01/12/15 17:50ID:???デフォルトでレジストリにしちゃってさ、インストール時に
標準/レジストリに設定を保存します。
特に問題を感じない場合は、こちらをセレクトして下さい。
カスタム/設定の保存場所をカスタマイズします。
マルチユーザーでの ini ファイル使用なども考慮することができます。
で、いいんじゃないの? どうでしょ?
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ですぐヒットするほど公開されてる。
■ このスレッドは過去ログ倉庫に格納されています