- PR -

ネットワークレジストリの取得について

1
投稿者投稿内容
ゆいたん
ベテラン
会議室デビュー日: 2004/08/26
投稿数: 91
投稿日時: 2006-01-07 15:31
使用言語:C#.NET 2005

ローカルのレジストリの操作はMicrosoft.Win32.Registryで行えますが、
コマンドラインのREGコマンドのようなネットワークレジストリの操作を
行うクラスはあるのでしょうか?

WMIを使いたいところなのですが、相手先にインストールされていたり
いなかったりで別の方法を探しています。

よろしくお願いします。

以上
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-01-07 15:43
引用:

ローカルのレジストリの操作はMicrosoft.Win32.Registryで行えますが、
コマンドラインのREGコマンドのようなネットワークレジストリの操作を
行うクラスはあるのでしょうか?



無いです。

引用:

WMIを使いたいところなのですが、相手先にインストールされていたり
いなかったりで別の方法を探しています。



であれば、レジストリ操作に使用する API の薄いラッパなどを、自作するなどして入手するほかありません。
ゆいたん
ベテラン
会議室デビュー日: 2004/08/26
投稿数: 91
投稿日時: 2006-01-07 15:49
渋木宏明(ひどり)さんありがとうございます。
API自作でがんばってみます。

以上
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-01-07 16:14
引用:

API自作でがんばってみます。



レジストリ関係の API 定義がどれだけ充実しているか見ていませんが

P/INVOKE.NET
http://www.pinvoke.net/

を覗いてみると吉かもしれません。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2006-01-07 19:12
Microsoft.Win32.RegistryKey.OpenRemoteBaseKey

# 私が勘違いしてる?
ゆいたん
ベテラン
会議室デビュー日: 2004/08/26
投稿数: 91
投稿日時: 2006-01-07 19:19
渋木宏明(ひどり)さん、yaさんありがとうございます。

コード:

RegistryKey rkBase = RegistryKey.OpenRemoteBaseKey
(RegistryHive.LocalMachine, "testclient");
RegistryKey rkTarget = rkBase.OpenSubKey(@"SOFTWARE\Microsoft\.NETFramework");
String retVal = (string)rkTarget.GetValue("InstallRoot");
MessageBox.Show(retVal);



yaさんご指摘の通り、このコードでできました。
渋木宏明(ひどり)さんのヒントからRegConnectRegistry APIにたどり着いて
ぐぐっているうちにOpenRemoteBaseKeyメソッドを見つけられました。

がんばって探してできたんでなんかいい気分です(^^)

以上

[ メッセージ編集済み 編集者: ゆいたん 編集日時 2006-01-07 19:21 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-01-07 22:24
引用:

yaさんご指摘の通り、このコードでできました。



ごめんなさい、static メソッドとして用意されてたんですね>ネットワーク経由のレジストリ操作
1

スキルアップ/キャリアアップ(JOB@IT)