レジストリ操作

このドキュメントはJavaScriptについて知識があるという前提で書かれています。
WSHではレジストリの操作も可能です。
レジストリから情報を読み込んだり、 またレジストリに新しい情報を書き込んだりする事が出来ます。
間違ったレジストリの情報を削除するなどすると、 OSが起動しなくなる事もありますので、 レジストリの操作は十分な知識を持った上で行うようにして下さい。

レジストリ操作に関する詳細な情報については、MSサイト内の WSHリファレンス をご覧下さい。


■レジストリの情報を取得する

レジストリの情報を取得するにはShellオブジェクトの RegReadメソッドを使用します。

string = WshShell.RegRead(strName);

strNameには読み込むレジストリの値を指定します。 なお、値ではなくキーを指定するときは \ を末尾に付けます。
例えば、Netscapeがインストールされているディレクトリのパスを レジストリから読み込むなら、
var WshShell = WScript.CreateObject("WScript.Shell");
var NNDir = WshShell.RegRead("HKCU\\Software\\Netscape\\Netscape Navigator\\Main\\Install Directory") 
     //HKCUは、HKEY_CURRENT_USERの略称です
WScript.Echo(NNDir);
とします。

■レジストリの情報を削除する

レジストリの情報を削除するにはRegDeleteメソッドを使用します。

string = WshShell.RegDelete(strName);

strNameには削除するレジストリの値を指定します。 なお、値ではなくキーを削除するときは \ を末尾に付けます。
例えば、HKEY_CURRENT_USER\hoge\fooの削除するならば、
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegDelete("HKCU\\hoge\\foo") 
     //HKCUは、HKEY_CURRENT_USERの略称です
とします。

■レジストリに書き込み

レジストリに新たなキーを書き込む時は、RegWriteメソッドを使用します。

string = WshShell.RegWrite(strName,value[,type]);

strNameにはレジストリのキー又はレジストリ値を指定します。 キーを指定するときは、文字列の最後に \ を付けます。 valueにはレジストリに記録するデータを指定します。 typeはデータ型の指定です(REG_SZ,REG_EXPAND_SZ,REG_DWORD,REG_BINARY)
例えば、HKEY_CURRENT_USER\hoge\fooにHello Worldという文字列を記録するなら、
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.RegWrite("HKCU\\hoge\\foo","Hello World!");
     //HKCUは、HKEY_CURRENT_USERの略称です
とします。
なお、このようにテスト用に書き込んだキー(HCKU\hoge\)を削除するには、
WshShell.RegDelete("HKCU\\hoge\\")
を実行して下さい。


レジストリの操作は慎重に。

[ Back ]