「ユーザー設定」を作るには?

解決


エーミール  2002-05-13 21:46:31  No: 104264  IP: [192.*.*.*]

今、ユーザー設定みたいなのが使えるものを作っているんですが、そういう設定をどうソフトに保存していいのか分かりません。メモ帳のように他のところに保存する方法は分かるのですが、こういう場合はどうすればいいのでしょうか。お願いします。

編集 削除
YuO  2002-05-13 22:38:03  No: 104265  IP: [192.*.*.*]

SaveSetting,GetSettingなどを使います。
HKEY_LOCAL_USERだけでなくHKEY_LOCAL_MACHINEなどにも書き込む場合は,
APIを利用する必要があります。

また,レジストリではなく初期化ファイルを使う場合は,
同じくAPIを利用するか,自分でOpen〜Closeを使って読み書きすることになります。

編集 削除
トラキチ  2002-05-13 23:05:39  No: 104266  IP: [192.*.*.*]

個人的には、iniファイルを使う事をお勧めします。
レジストリもiniの読み書きもここのVB
API  技術関連にあります。
レジストリにするならYuoさんの言うとおり
VBの関数を利用した方が楽です。

編集 削除
YuO  2002-05-14 08:53:53  No: 104267  IP: [192.*.*.*]

>HKEY_LOCAL_USER

HKEY_CURRENT_USERでしたね。

それはともかく,
iniファイルは基本的にユーザーごとの設定ができないので,お勧めできません。
#NTFSのストリームを使えばできますが……。
レジストリを使うと,ユーザーごとに設定を簡単に分離してくれます。

レジストリにしろiniファイルにしろ,ユーザーに依存しない設定とユーザーに依存する設定があります。

・ユーザーに依存しない設定
ハードウェアの情報やインストールディレクトリ情報など。
レジストリではHKEY_LOCAL_MACHINE\SOFTWAREに,
iniファイルでは%WINDIR%や実行ファイルのあるディレクトリに,
それぞれ保存します。

・ユーザーに依存する設定
カスタマイズ情報や最近使ったファイル情報など。
レジストリではHKEY_CURRENT_USER\SOFTWAREに,
iniファイルでは%USERPROFILE%\Application Dataに,
それぞれ保存します。
SaveSettingでは,
HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings\[appname]\[section]
に保存されます。
#[]内はSaveSettingの名前付き引数の値に置換。

編集 削除
トラ  2002-05-14 15:07:57  No: 104268  IP: [192.*.*.*]

ユーザー毎にフォルダをつくっておいて
その中にiniを保存というのではだめなんでしょうか?

レジストリ使うならアンインストールプログラムもつくって
ゴミをちゃんと消してくださいね。

編集 削除
YuO  2002-05-14 17:31:32  No: 104269  IP: [192.*.*.*]

>ユーザー毎にフォルダをつくっておいて
>その中にiniを保存というのではだめなんでしょうか?

その場合,NTFS使っている場合はアクセス権の設定をする必要があります。
#セキュリティの問題。
さらに,ユーザー名を変更したときに同じユーザーであることを識別する必要が出てきます。

HKCUは,HKEY_USERS\[sid]のaliasですから,同一ユーザーである限り設定が保持されます。
また,Administratorsに所属するアカウントでも,他のユーザーのHKEY_USERSを覗くことはできません。

編集 削除
エーミール  2002-05-14 21:39:56  No: 104270  IP: [192.*.*.*]

YuOさんの言うとおりにやってみたところ、どうやらうまくいったようです。皆様、ありがとうございました。

編集 削除
トラキチ  2002-05-14 21:41:01  No: 104271  IP: [192.*.*.*]

勉強になりました。

編集 削除