(for Internet Explorer)
← ▼ ▲
↑
RegEnumValues
Sub RegEnumValues( Path as string, out_Values as array of RegValueName )
指定のレジストリ・キーに入っている値を列挙します。
【引数】
Path
out_Values
レジストリのキーのパス
（出力） 値と型名の配列
ファイル：
System.vbs
Class RegValueName
Public Name as string
Public Type_ as string
End Class
RegValueName クラス
RegValueName
Dim values
RegEnumValues "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\" + _
"CurrentVersion\Setup", values '// Set "values"
サンプル：
→ RegValueName クラス
[ 親: システム、OS、レジストリ ]
(src)
Path の末尾に \ があってもなくても、キー（フォルダーのようなもの）を指定した
ことになります。
テスト
→ T_Reg.vbs
T_Reg1
← ▼ ▲
RegExists
Sub RegExists( RegPath as string )
指定のレジストリ・キーか値が存在するかどうかを判定します。
【引数】
RegPath
レジストリのキーのパス
ファイル：
System.vbs
If RegExists( "HKEY_CURRENT_USER\Software\_Test\" ) Then Fail
サンプル：
Path の末尾が \ のときは、キーがあるかどうかを判定します。
Path の末尾が \ ではないときは、値があるかどうかを判定します。
(src)
[ 親: システム、OS、レジストリ ]
← ▼ ▲
IsRegEmptyKey
Sub IsRegEmptyKey( RegPath as string )
指定のレジストリ キーに、値もサブのキーもないかどうかを返します。
指定のレジストリ キーがないときは、False を返します。
→ vbslib.vbs
ソース
テスト
→ T_Reg.vbs
T_Reg1
← ▼ ▲
RegRead
Function RegRead( Path as string ) as variant
RegRead (Shell)
との違いは、キーが見つからないときにエラーになるのではなく、
Empty を返すところです。
レジストリからリードします。
【引数】
返り値
値、または Empty
リードする場所。 キーへのパス＋値の名前
Path
(src)
[ 親: システム、OS、レジストリ ]
Path の最後に \ があると、キーの (規定) をリードします。
→ RegReadEx
関連
← ▼ ▲
RegReadEx
(src)
[ 親: システム、OS、レジストリ ]
Function RegReadEx( Path as string, RegistryType as integer ) as variant
レジストリからリードします。 32/64 ビット用レジストリ対応。
【引数】
RegistryType
64=64ビット用レジストリ、32=32ビット用レジストリ
リードする場所。 キーへのパス＋値の名前
Path
値、または Empty
返り値
echo RegReadEx( "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"+_
"doxygen_is1\InstallLocation", 64 )
サンプル
← ▼ ▲
RegExport
Sub RegExport( RegPath as string, OutFilePath as string, Opt as variant )
指定のレジストリ・キーに入っている値を .reg ファイルに出力します。
【引数】
RegPath
OutFilePath
レジストリのキーのパス
出力ファイルパス
ファイル：
System.vbs
Opt
オプション。 Empty か F_SubFolder
RegExport "HKEY_CURRENT_USER\Control Panel\Keyboard", _
"keyboard.reg", F_SubFolder
サンプル：
[ 親: システム、OS、レジストリ ]
(src)
テスト
→ T_Reg.vbs # T_RegExport
対応しているキーの型は、REG_SZ のみです。
← ▼ ▲
RegWrite
Sub RegWrite( Path as string, Value as string or integer, Type as string or Empty )
レジストリにライトします。
【引数】
Value
Type
値、または Empty（=値を消す）
値のタイプ, "REG_SZ", "REG_DWORD" など、または Empty(*1)
ライトする場所。 キーへのパス＋値の名前
Path
Path によっては管理者権限が必要です
サンプル：
RegWrite "HKEY_CLASSES_ROOT\.ext\", "ExtSample", Empty
(src)
[ 親: システム、OS、レジストリ ]
ファイル：
System.vbs
RegWrite (Shell)
との違いは、エラーメッセージの内容です。
Path の最後に \ があると、キーの (規定) に設定します。
(*1) Type = Empty のときは、 Value の型によって自動的に型を判定します。
← ▼ ▲
RegDelete
Sub RegDelete( Path as string )
レジストリの値、またはキーを削除します。
Path の末尾が "\" のときは、キー（フォルダーのようなもの）を削除します。
サブ・キーや値があるときでも、削除できます。
値の名前に "\" を含むときは、
ただし、RegDelete でキーを削除するときは、そのキー（またはサブ・キー）が
持つ値の名前に "\" を含んでいても正しく処理します。
RegDelete "HKEY_CLASSES_ROOT\.svg\"
サンプル：
(src)
[ 親: システム、OS、レジストリ ]
StdRegProv::DeleteValue
を使ってください。
→ T_Reg_Manually.vbs # T_FileAssocOpen
最後の T_FileAssocProg2.exe アンインストールで、値の名前に "\" を含む
値を持つキーを削除しています。
テスト
→ T_Reg_Manually.vbs # T_RegWriteRead
→ T_Reg.vbs
T_Reg1
← ▼ ▲
OpenForRegFile
レジストリファイル（*.reg）を編集します。
Dim f : Set f = OpenForRegFile( "Sample.reg" )
If IsEmpty( f.RegRead( "HKEY_CLASSES_ROOT\.ext\" ) ) Then _
f.RegWrite "HKEY_CLASSES_ROOT\.ext\", "ExtSample", "REG_SZ"
f = Empty '// Write
Function OpenForRegFile( RegFilePath as string ) as EditRegFile
【引数】
RegFilePath
返り値
レジストリファイルのパス
EditRegFile オブジェクト
サンプル：
ランダムアクセスに対応しています。 OpenForRead や OpenForWrite のように
シーケンシャル（ファイルの先頭から順番）にアクセスする必要はありませんし、
変更しないキーまで Write する必要はありません。
存在しないキーを新規に Write したときは、シーケンシャル（RegWriteした順番）
にファイルに記述されます。 Empty の値を Write すると、そのキーは削除されます。
元々書かれていたコメントは保持されます。
テスト
→ T_Reg.vbs # T_RegFile
(src)
→ OpenForEnvVarsFile
関連
Sample.reg
HKEY_CLASSES_ROOT\.ext\
ExtSample
→ .ini ファイル
← ▼ ▲
EditRegFile クラス
レジストリファイル（*.reg）を編集します。 OpenForRegFile から取得できます。
メソッド
.RegRead
.RegWrite
レジストリファイルからリードします。
レジストリファイルにライトします。
.Close
レジストリファイルを閉じます。 アクセスを終了します。
(src)
← ▼ ▲
Close (EditRegFile)
レジストリファイルを閉じます。 アクセスを終了します。
Sub EditRegFile::Close()
デストラクタによっても自動的にファイルを閉じます。
閉じる前にエラーが発生してデストラクタが呼ばれたら、Write した内容は反映されません。
(src)
← ▼ ▲
InstallRegistryFileOpen
Sub InstallRegistryFileOpen( Extension as string, ExePath as string, IsDefault as boolean )
ファイルをダブルクリックしたときに開くプログラムを設定します。（現在のユーザーのみ）
【引数】
Extension
ExePath
拡張子
プログラムの exe ファイルのパス。相対パス可。
IsDefault
True = ダブルクリックしたときに開く、 False = プログラムの選択に登録する
ファイル：
System.vbs
(src)
[ 親: システム、OS、レジストリ ]
サンプル：
InstallRegistryFileOpen ".svg", "Snap Note.exe", True
関連
→ UninstallRegistryFileOpen
→ InstallRegistryFileVerb
ファイルの右クリック・メニュー
ダブルクリックしたときの設定解除
テスト
→ T_Reg_Manually.vbs # [T_FileAssocOpen]
参考
→ ファイルをダブルクリックしたときのコマンド
→ InstallRegistryFileOpenCommand
コマンドラインを指定して開くプログラムを設定する
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\
FileExts\.<拡張子>\UserChoice\Hash
下記 Hash キーがあるときは、レジストリーの設定を直接設定しただけでは、「この種類の
ファイル (.<拡張子>)を開くには、どのアプリを使いますか？」が常に表示されるようになります。
セキュリティーの機能の可能性があります。 少なくとも、マクロソフト製品が使う拡張子は、
Hash キーができます。
Windows8 では、関連する設定に矛盾があると、「この種類のファイル (.<拡張子>)
を開くには、どのアプリを使いますか？」が常に表示されます。
→ 既定のプログラムの選択、プログラムから開く
マクロソフト製品（または、Windows インストーラーでインストールしたプログラム？）が使わない
拡張子には Hash キーができず、レジストリーの設定だけで関連付けすることができます。
UninstallRegistryFileOpen
などで、レジストリーの設定を元に戻してから、ファイルを右クリック [ プログラムから開く >
既定のプログラムの選択 ] を選んでください。
ダブルクリックしたときに開くプログラムを変更できるように戻すには、
← ▼ ▲
UninstallRegistryFileOpen
Sub UninstallRegistryFileOpen( Extension as string, ExePath as string )
ファイルをダブルクリックしたときに開くプログラムを設定解除します。（現在のユーザーのみ）
【引数】
Extension
ExePath
拡張子
プログラムの exe ファイルのパス。相対パス可。
ファイル：
System.vbs
(src)
[ 親: システム、OS、レジストリ ]
サンプル：
UninstallRegistryFileOpen ".svg", "Snap Note.exe"
関連
→ InstallRegistryFileOpen
ダブルクリックしたときの設定
テスト
→ T_Reg_Manually.vbs # [T_FileAssocOpen]
← ▼ ▲
InstallRegistryFileOpenCommand
Sub InstallRegistryFileOpenCommand( Extension as string,
ProgID as string, CommandLine as string, IsDefault as boolean )
ファイルをダブルクリックしたときに開くプログラムを設定します。（現在のユーザーのみ）
【引数】
Extension
ProgID
拡張子
プログラムの識別子
IsDefault
True = ダブルクリックしたときに開く、 False = プログラムの選択に登録する
ファイル：
System.vbs
InstallRegistryFileOpenCommand ".svg", "Snap Note.exe", """Snap Note.exe"" ""%1""", True
関連
テスト
参考
→ ファイルをダブルクリックしたときのコマンド
コマンドライン
CommandLine
(src)
[ 親: システム、OS、レジストリ ]
→ UninstallRegistryFileOpenCommand
→ T_Reg_Manually.vbs # T_FileAssocOpen_OS_Exe
サンプル
サンプル
prompt_vbs = SearchParent( "vbslib Prompt.vbs" )
command_line = """%windir%\System32\cmd.exe"" /K (""%windir%\System32\cscript.exe"" //nologo """+_
prompt_vbs +""" TranslateTest ""%1"" """")"
InstallRegistryFileOpenCommand "trans", "TranslateTest", command_line, True
→ GetCScriptGUI_CommandLine
← ▼ ▲
UninstallRegistryFileOpenCommand
Sub UninstallRegistryFileOpenCommand( Extension as string, ProgID as string )
ファイルをダブルクリックしたときに開くプログラムを設定解除します。（現在のユーザーのみ）
【引数】
Extension
ProgID
拡張子
プログラムの識別子
ファイル：
System.vbs
サンプル：
UninstallRegistryFileOpenCommand ".svg", "Snap Note.exe"
関連
→ InstallRegistryFileOpenCommand
テスト
→ T_Reg_Manually.vbs # T_FileAssocOpen_OS_Exe
← ▼ ▲
RegWriteOpenExt
Sub RegWriteOpenExt( Ext, KeyName, Explain, Command, Opt )
指定の拡張子の [開く(&O)] メニューのコマンドを登録します。
管理者権限が必要です
【引数】
KeyName
Explain
レジストリのキーの名前（英語）
タイプの説明に表示される内容
Command
実行するコマンドライン
Opt
通常 Empty
拡張子。先頭はピリオド。例：.ext
Ext
(src)
[ 親: システム、OS、レジストリ ]
ファイル：
System.vbs
今まで関連付けられていた情報は失われます。
サンプル：
RegWriteOpenExt ".c", "cfile", "C Language source", _
"C:\Windows\Notepad.exe ""%1""", Empty
.c ファイルをメモ帳で開くようにします。
廃止されました。 代わりは……
→ InstallRegistryOfFileOpen
← ▼ ▲
InstallRegistryFileVerb
Sub InstallRegistryFileVerb( ProgID as string, Verb as string, Caption as string,
CommandLine as string )
ファイルの右クリック・メニューの１つの項目を追加します。（現在のユーザーのみ）
【引数】
ProgID
Verb
"*"、または RegReadExtProgID の返り値 (*1)
メニュー項目の識別子（英語）
Caption
右クリック・メニューに表示する文字列。(*2)
ファイル：
System.vbs
(src)
[ 親: システム、OS、レジストリ ]
(*2)
& の次の文字は、右クリック・メニューを表示している状態で押すと選択できるキーボード
のキーになります。
CommandLine
コマンドライン。 %1 は、ファイルのパスに置き換わります。
RegReadExtProgID
(*1)
で、拡張子と現在関連付けられている ProgID を取得できます。
サンプル：
InstallRegistryFileVerb RegReadExtProgID( "svg" ), "edit", "Snap Note (&Z)", _
""""+ GetFullPath( "Snap Note.exe", Empty ) +""" ""%1"""
関連
→ UninstallRegistryFileVerb
→ InstallRegistryFileOpen
→ RegReadExtProgID
右クリック・メニューの削除
ダブルクリックしたときの設定
拡張子と関連付けられている ProgID の取得
テスト
→ T_Reg_Manually.vbs # [T_FileAssocVerb]
参考
→ 右クリックして表示されるメニュー （特定の拡張子のファイル）
フォルダーに対する設定をするときは、ProgID="Folder" を指定してください。
すべてのファイルやフォルダーに対する設定をするときは、ProgID="*" を指定してください。
← ▼ ▲
UninstallRegistryFileVerb
Sub UninstallRegistryFileVerb( ProgID as string, Verb as string )
ファイルの右クリック・メニューの１つの項目を削除します。（現在のユーザーのみ）
(src)
[ 親: システム、OS、レジストリ ]
【引数】
ProgID
Verb
"*"、または RegReadExtProgID の返り値 (*1)
メニュー項目の識別子（英語）
ファイル：
System.vbs
RegReadExtProgID
(*1)
で、拡張子と現在関連付けられている ProgID を取得できます。
サンプル：
InstallRegistryFileVerb RegReadExtProgID( "svg" ), "edit"
関連
→ InstallRegistryFileVerb
右クリック・メニューの追加
← ▼ ▲
RegWriteAsterExt
Sub RegWriteAsterExt( KeyName, Caption, Command, Opt )
すべてのファイルに対するコンテキストメニューを追加登録します。
管理者権限が必要です
【引数】
KeyName
Caption
レジストリのキーの名前（英語）
コンテキストメニューに表示される内容
Command
実行するコマンドライン
Opt
通常 Empty
(src)
[ 親: システム、OS、レジストリ ]
ファイル：
System.vbs
サンプル：
'--- start of parameters for vbslib include -------------------------------
g_admin = 1
:
'--- end of parameters for vbslib include ---------------------------------
Sub main()
Dim prog : prog = GetFullPath( "bz", Empty )
RegWriteAsterExt "bz", "bz (binary editor)", prog + "\bz.exe ""%1""", Empty
End Sub
廃止されました。 代わりは……
→ InstallRegistryFileVerb
← ▼ ▲
RegReadExtProgID
Function RegReadExtProgID( Extension as string ) as string
拡張子と現在関連付けられている ProgID を取得します。（現在のユーザー）
(src)
[ 親: システム、OS、レジストリ ]
関連
→ InstallRegistryFileVerb
右クリック・メニューの追加
フォルダーに対応する ProgID は、"Folder" です。
← ▼ ▲
MsiModify
(src)
Sub MsiModify( MsiPath as string, TableName as string,
KeyColumnName as string, ValueColumnNum as integer,
Key as string, NewValue as string )
Windows 用のインストール・パッケージ（.msi）のデータベースを修正します。
【引数】
MsiPath
TableName
インストール・パッケージ（.msi）のファイルのパス
データベースのテーブル名
KeyColumnName
キーがある列の名前
NewValue
Key
ValueColumnNum
値がある列の番号（最初＝１）
キーの名前
新しい値
→ Orca ツール、msi ファイルのデータベースの修正
参考
サンプル
Sub Main( Opt, AppKey )
Dim msi_path : msi_path = "sample.msi"
Dim new_values : Set new_values = Dict(Array( "Utilities", "INSTALLDIR" ))
Dim key
For Each key In new_values.Keys
MsiModify msi_path, "Directory", "Directory", 2, key, new_values.Item( key )
Next
End Sub
← ▼ ▲
get_WMI
Function get_WMI( ComputerName as string, ClassName as string ) as Object
WMI オブジェクトを返します。
【引数】
ComputerName
ClassName
コンピューター名。 Empty = ログオンしているコンピューター
WMI のクラス名
返り値
エラーコード、正常=0
→ WMI (Windows Management Instrumentation)
参考
(src)
[ 親: システム、OS、レジストリ ]
← ▼ ▲
GetPythonInstallPath
Function GetPythonInstallPath() as string
Python がインストールされているフォルダーのパスを返します。
レジストリーの情報と、
SetTargetPythonVersion
の設定を元にしています。
ソース
→ vbslib.vbs
サンプル
python_exe = GetPythonInstallPath() +"\python.exe"
script_path = "C:\sample.py"
RunProg """"+ python_exe +""" """+ script_path +"""", ""
← ▼ ▲
SetTargetPythonVersion
Sub SetTargetPythonVersion( MinVer as integer, MaxVer as integer )
Python に関する機能の対象となるバージョンの範囲を設定します。
【引数】
MinVer
MaxVer
最小バージョン、または、Empty
最大バージョン、または、Empty
GetPythonInstallPath
IsInstallPython
や
の動きが
本関数を呼び出すと、
変わります。
ソース
→ vbslib.vbs
← ▼ ▲
IsInstallPython
Function IsInstallPython() as boolean
Python がインストールされているかどうかを返します。
ソース
→ vbslib.vbs
← ▼ ▲
GetPerlVersion
Function GetPerlVersion( Options as Empty ) as string
Perl がインストールされているか確認し、ActivePerl のバージョンを返します。
【引数】
Options
返り値
Empty を指定してください
スクリプト・エンジン名と、バージョン番号。 例："5.16.3"
<ERROR err_number='0x80070002' err_description='Perl が見つからないか Perl に Path
が通っていません。Strawberry Perl や ActivePerl などをインストールしてください。'/>
Perl がインストールされていないと、下記のようなエラーになります。
サンプル
Perl が使えるかどうかをチェックする
GetPerlVersion Empty
ソース
→ vbslib.vbs
参考
内部で
によって Perl スクリプトのホスト(.exe) のパスを検索します。
Setting_getPerlPath
また、本関数の内部で、現在実行中のプロセスの環境変数 PATH に、Perl の exe ファイルがある
フォルダーを追加します。
→ ActivePerl
→ Strawberry Perl
←
↓