registry

ReferenceTOPKeywords

コマンド名

registry -  Windowsのレジストリを処理します。

構文

package require registry 1.1
registry option keyName ?arg arg ...?

解説

registryパッケージはWindowsのレジストリを扱うための基本的な操作セットを提供します。 このパッケージにはregistryTcl コマンドを実装しています。このコマンドはWindowsプラットフォームのみでサポートされます。警告: レジストリが破壊されると、システムを使用できない状態になるので、このコマンドは慎重に使用すべきです。

KeyNameはレジストリキーの名前です。レジストリキーは以下の形式のいずれかでなければなりません。

\\hostname\rootname\keypath
rootname\keypath
rootname

Hostnameは該当レジストリを公開しているいかなる正当なWindowsホストの名前を指定します。 rootname コンポーネントは HKEY_LOCAL_MACHINEHKEY_USERSHKEY_CLASSES_ROOTHKEY_CURRENT_USERHKEY_CURRENT_CONFIGHKEY_PERFORMANCE_DATAまたはHKEY_DYN_DATAのいずれかでなければなりません。 keypath はバックスラッシュ(\)文字で区切られた1つ以上のレジストリキーの名前です。

option はレジストリキー名で何をするのかを示します。 option の区別できる範囲での省略形が認められます。認められているオプショ ンは下記のとおりです。

.VS 8.4
registry delete keyName ?valueName?
registry get keyName valueName
registry keys keyName ?pattern?
registry set keyName ?valueName data ?type??
registry type keyName valueName
registry values keyName ?pattern?
.VS 8.4
registry broadcast keyName ?-timeout milliseconds ? はある最新情報を通 告するためメッセージを、システムまたは実行しているプログラムへ通告します。 これはEnvironmentのような重要なレジストリキーへの変更を伝播するために必要です。 タイムアウトはアプリケーションが放送メッセージに応答するのを待つ時間をミリセカンドで指定します。 デファルトは3000です。以下の例はパスをどのようにグローバルなEnvironmentに追加し、そして、ログオフ/ログオンステップを要求せずに変更をアプリケーションに通 告することを例示します (admin権であると仮定します)。

set regPath {HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment}
set curPath [registry get $regPath "Path"]
registry set $regPath "Path" "$curPath;$addPath"
registry broadcast "Environment"

registry delete keyName ?valueName ?
任意選択のvalueName 引数が存在すると、レジストリからkeyNameの指定された値が削除されます。 任意選択のvalueName 引数が省略されると、指定されたキーとそのレジストリ階層構造の中にあるあらゆるサブキー、あるいは値が削除されます。 キーが削除できないとエラーが生成されます。 キーが存在しないと、このコマンドはなにもしません。

registry get keyName valueName
キーkeyName の下の値valueName に関連しているデータを返します。 キーか値のどちらかが存在しないとエラーが生成されます。返されるデータの形式に関する詳細は後述のSUPPORTED TYPESを参照して下さい。

registry keys keyName ?pattern?
pattern が指定されないと、keyName のすべてのサブキー名のリストを返します。 patternが指定されるとそれらの pattern にマッチする名前だけが返されます。照合は string matchと同じルールを用いて判定されます。指定されたkeyName が存在しないとエラーが生成されます。

registry set keyName ?valueName data ?type??
valueName が指定されなく、存在していないならkeyName が作成されます。 valueName が指定されると必要ならばキーkeyName と値valueName が作成されます。 valueName の内容はtypeで示されるタイプのdataに設定されます。 type が指定されないとタイプszと仮定されます。 データとタイプ引数に関する詳細はサポートするタイプを参照して下さい。

 
registry type keyName valueName
キーkeyName内の値valueNameのタイプを返します。可能なタイプに関する詳細はサポートするタイプを参照して下さい。

registry values keyName ?pattern?
pattern が指定されないと、keyName のすべての値の名前のリストを返します。 pattern が指定されると、それらのpattern にマッチする名前だけが返されます。照合は string matchと同じルールを用いて判定されます。

サポートするタイプ

レジストリ内のキーの下の各値はタイプ独自の表現で特定のタイプのデータをいくつか含みます。 registryコマンドはこの内部的な表現とTclスクリプトで扱うことができる表現との間で変換を行います。 ほとんどの場合、データは単にTcl文字列として返されます。 タイプはデータの意図された使用を示すが、実際に表現を変更しません。 いくつかのタイプに対してregistryコマンドはデータを扱いやすくするために異なる形式で返します。 次のタイプがレジストリコマンドで認識されます。

binary
none
sz
expand_sz
dword
dword_big_endian
link
multi_sz
resource_list
binary
レジストリ値は任意のバイナリデー タを持ちます。 データは埋め込まれている空文字も含むTclで正確に表現されます。

none
レジストリ値はタイプが定義されていない任 意のバイナリデータを持ちます。データは埋め込まれている空文字も含むTclで正確に表現されます。

sz
レジストリ値は空文字で終了している文字列を持ちます。データは文字列としてTclでは表現されます。

expand_sz
レジストリ値は展開されていない普通のWindowsスタイルの環境変数への参照(例えば"%PATH%")を含み、空文字で終了している文字列を持ちます。 データはTclでは文字列として表現されます。

dword
レジストリ値はリトルエンディアンの32 ビッ ト数値を持ちます。データはTclでは十進数文字列として表現されます。

dword_big_endian
レジストリ値はビッグエンディアンの32 ビット数値を持ちます。 データはTclでは十進数文字列として表現されます。

link
レジストリ値は符号的なリンクを持ちます。 データは埋め込まれている空文字も含めてTclで正確に表現されます。

multi_sz
レジストリ値は空文字で終了している文字列の配列を持ちます。 データはTclでは文字列のリストとして表現されます。

resource_list
レジストリ値はデバイスドライバリソースリストを持ちます。 データは埋め込まれている空文字も含めてTclで正確に表現されます。

上でリストされたタイプ以外には、システムインターフェスによって返されるタイプコードに対応する32ビット整数を使って、未知のタイプを識別できます。 この場合では、データは埋め込まれている空文字も含めてTclで正確に表現されます。

移植性問題

レジストリコマンドはWindowsでのみ利用可能です。

キーワード

registry


Copyright © 1997 Sun Microsystems, Inc. Copyright © 2002 ActiveState Corporation. Copyright © 1995-1997 Roger E. Critchlow Jr.