.NET TIPS レジストリのキーを列挙するには?[C#、VB]デジタルアドバンテージ 一色 政彦2007/09/06 |
![]() |
Windowsレジストリ(以降、レジストリ)は、アプリケーションの構成/設定情報などを格納するためのWindows特有のデータベースである。レジストリは、Windowsシステムのフォルダに似た構造を持っており、レジストリ・キー(以降、キー)と呼ばれるディレクトリ階層の中にレジストリ値を格納する。Windowsシステムになぞらえると、レジストリのキーはフォルダに、レジストリ値はファイルに相当する。
|
本稿では、このうちのキーを列挙する方法を紹介する。このようなキーの列挙は、キーの有無を確認して階層構造を調べながら、レジストリの内容を(固定ではなく)動的に取得する際に役立つ。
サブ・キーを列挙する方法
キーを列挙するには、RegistryKeyクラス(Microsoft.Win32名前空間)が持つGetSubKeyNamesメソッド(パラメータなし)を利用すればよい。ただし、このメソッドを呼び出すには、RegistryKeyクラスのオブジェクトが必要である。
RegistryKeyオブジェクトを取得するは、まず、Registryクラス(Microsoft.Win32名前空間)の静的フィールドであるLocalMachineフィールドやCurrentUserフィールドを利用して適切な基本RegistryKeyオブジェクトを作成する。
次に、この基本RegistryKeyオブジェクトが持つOpenSubKeyメソッドを、開きたいレジストリのキーのパス名をパラメータに指定して呼び出す(この際のパス名は「HKEY_LOCAL_MACHINE」などのルート名を省略して「SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths」のようにする必要がある)。これにより、開きたいキーに対応したRegistryKeyオブジェクトが取得できる。
このようにして取得したRegistryKeyオブジェクトが、列挙しようとしているキーの親キーとなる。あとは、親キーのRegistryKeyオブジェクトが持つGetSubKeyNamesメソッドを呼び出すと、その親キーの配下にあるすべてのサブ・キー(=子キー)の名前が、文字列配列型の戻り値として取得できるというわけだ。
以上の処理を実装したコード例を次に示す。
|
||
| サブ・キーを列挙するコンソール・アプリケーションのサンプル・プログラム(上:C#、下:VB) |
開いたキーを閉じるため、RegistryKeyオブジェクトのCloseメソッドを呼び出すことを忘れないようにしてほしい。![]()
| カテゴリ:クラス・ライブラリ 処理対象:レジストリ 使用ライブラリ:Registryクラス(Microsoft.Win32名前空間) 使用ライブラリ:RegistryKeyクラス(Microsoft.Win32名前空間) 関連TIPS:レジストリの値を取得するには? 関連TIPS:レジストリの値を設定するには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


