Hatena::Groupmoz-addon

Ci.nsIZIGOROu

2007-08-08一度痛い目に遭った方がいい

WSHを使ってRegistryのキーを列挙する

| 17:44 |  WSHを使ってRegistryのキーを列挙する - Ci.nsIZIGOROu を含むブックマーク はてなブックマーク -  WSHを使ってRegistryのキーを列挙する - Ci.nsIZIGOROu

WScript.Shellを使うと特定のレジストリの値の読み込み、書き込み、削除は出来るんですが、列挙が出来ない。

そこでWMIを使うと。

ここら辺の技術背景は良く分からないので、あとで書く。

var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var server = locator.ConnectServer(null, "root\\default");
var registry = server.Get("StdRegProv");

var method = registry.Methods_.Item("EnumKey");
var iParams = method.InParameters.SpawnInstance_();

iParams.hDefKey = 0x80000000; // HKEY_CLASSES_ROOT
iParams.sSubKeyName = ""; 

var result = registry.ExecMethod_(method.Name, iParams);
var keys = result.sNames.toArray();

for (var i = 0, l = keys.length; i < l; i++) {
    WScript.Echo(keys[i]);
}

こんなスクリプトでHKEY_CLASSES_ROOT直下のレジストリのキーを列挙出来る。

この辺りを参考にした。