[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:6538] fiber.exeが使用するレジストリの管理
- X-ml-count: 6538
- Subject: [MD:6538] fiber.exeが使用するレジストリの管理
- From: Eisaku YAMAGUCHI <eisaku@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 11 May 2005 18:40:30 +0900 (JST)
- X-mailer: Mew version 4.2 on Emacs 21.4 / Mule 5.0 (SAKAKI)
山口です.
Mew-win32 MLで,レジストリのアクセスコントロールが原因の
fiber.exe が使えない問題が報告されました.
皆さんご存じとは思いますが,Windows 2000 以降では,HKEY_LOCAL_MACHINE
へのアクセスが引き締められ,defaultではAdministrator権限以外では
レジストリキーの作成・変更等ができません.
対処としては,
(案1) レジストリのアクセス権を変更する or Administratorで変更する
(案2) install.exeからfiber.exeを実行しておく
(案3) HKEY_CURRENT_USER を使用する
の3つくらいが考えられると思います.
# 他に .INI ファイルによる管理に戻すという番外編もあるでしょうけれど...
fiber.exeの機能の一つに,拡張子データの追加機能があります.
北口さんが想定する,運用形態の在り方が今一つ見えていないので,
可能性のある候補を挙げてみました.
初期化ならびに拡張子データの管理を,管理者権限でコントロールするという
設計方針であれば,案1 についての案内をINSTALL.Meadowに追加するのが
betterだと思います.
別解が,案2 のような細工による回避でしょうか.
ユーザレベルでコントロールすべき内容ということであれば,
案3 で良いかなと思います.
個人的には,マルチユーザの利用形態を考慮して案3 を支持します.
patchを喰わせるより,replaseした方が早いとは思いますが,案3 の場合の
patchを添付します.
-- EY
--- fiber.c.orig 2004-12-27 20:25:24.151067200 +0900
+++ fiber.c 2005-05-11 17:08:46.134460800 +0900
@@ -361,7 +361,7 @@
DWORD dwDisposition;
char *pt;
- ret = RegCreateKeyEx( HKEY_LOCAL_MACHINE,
+ ret = RegCreateKeyEx( HKEY_CURRENT_USER,
FIBER_SUBKEY,
0,
"",
@@ -421,7 +421,7 @@
int i;
char szBuf[64];
- ret = RegCreateKeyEx( HKEY_LOCAL_MACHINE,
+ ret = RegCreateKeyEx( HKEY_CURRENT_USER,
FIBER_SUBKEY,
0,
"",
@@ -494,14 +494,14 @@
BOOL fRet = TRUE;
int i;
- ret = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
+ ret = RegOpenKeyEx( HKEY_CURRENT_USER,
FIBER_SUBKEY,
0,
KEY_EXECUTE,
&hKey );
if ( ret != ERROR_SUCCESS ){
if ( InitializeRegistry() ){
- ret = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
+ ret = RegOpenKeyEx( HKEY_CURRENT_USER,
FIBER_SUBKEY,
0,
KEY_EXECUTE,
@@ -738,7 +738,7 @@
}
*pt++ = '\0';
- ret = RegCreateKeyEx( HKEY_LOCAL_MACHINE,
+ ret = RegCreateKeyEx( HKEY_CURRENT_USER,
FIBER_SUBKEY,
0,
"",