WshShell.RegRead メソッド

本ページには広告が含まれています。

レジストリ内のキー名または値名の値を返します。

HKEY_CURRENT_USER以外を指定した場合、管理者権限が必要となります。権限が与えられていない場合はエラーとなります。

(既定)の値を取得する場合は、パス(strName)の最後に\を付けます。

構文
WshShell.RegRead( strName )
引数
strName 省略可
読み取るキーまたは値の名前
戻り値

プログラム実行例

オフライン作業取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

TRY
	// Ver11以上
	DIM version = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\svcVersion")
EXCEPT
	// Ver10以下
	version = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version")
ENDTRY

IFB VAL(TOKEN(".", version)) <= 10 THEN
	// Ver10以下
	DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
	IE.Visible = TRUE
	IFB IE.Offilne = TRUE THEN
		PRINT "オフライン作業中です"
	ELSE
		PRINT "オフライン作業中ではありません"
	ENDIF
	IE.Quit
ELSE
	// Ver11以上
	PRINT "オフライン作業は利用できません"	
ENDIF
結果
プレーンテキスト
オフライン作業は利用できません
使用関数

レジストリからGoogle Chromeの実行ファイルのパスを取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe\")
結果
プレーンテキスト
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
使用関数

レジストリからInternet Explorerの実行ファイルのパスを取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE\")
結果
プレーンテキスト
C:\Program Files\Internet Explorer\IEXPLORE.EXE
使用関数

レジストリからFirefoxの実行ファイルのパスを取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\firefox.exe\")
結果
プレーンテキスト
C:\Program Files\Mozilla Firefox\firefox.exe
使用関数

レジストリからMicrosoft Edgeの実行ファイルのパスを取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msedge.exe\")
結果
プレーンテキスト
C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
使用関数
解説

レジストリでInternet Explorerのバージョンを取得する

_IEバージョン.png
UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\svcVersion")
結果
プレーンテキスト
11.789.19041.0
使用関数

インストールされている.NET Frameworkのバージョンを確認する

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM n = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release")

SELECT TRUE
	CASE n >= 528040
		PRINT "4.8"
	CASE n >= 461808
		PRINT "4.7.2"
	CASE n >= 461308
		PRINT "4.7.1"
	CASE n >= 460798
		PRINT "4.7"
	CASE n >= 394802
		PRINT "4.6.2"
	CASE n >= 394254
		PRINT "4.6.1"
	CASE n >= 393295
		PRINT "4.6"
	CASE n >= 379893
		PRINT "4.5.2"
	CASE n >= 378675
		PRINT "4.5.1"
	CASE n >= 378389
		PRINT "4.5"
SELEND
使用関数

UWSCをインストールした日付を取得

UWSCをインストールした日付をyyyymmdd形式で取得します。

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\UWSC Pro_is1\InstallDate")
結果
プレーンテキスト
20231113
使用関数

既定のブラウザをレジストリから取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")

DIM browser = WshShell.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice\ProgId")

IFB browser = "MSEdgeHTM" THEN
	PRINT "Microsoft Edge"
ELSEIF browser = "ChromeHTML" THEN
	PRINT "Google Chrome"
ELSEIF browser = "IE.HTTP" THEN
	PRINT "Internet Explorer"
ELSEIF POS("FirefoxURL-", browser) THEN
	PRINT "Firefox"
ELSE
	PRINT browser
ENDIF
使用関数

既定のメーラーをレジストリから取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\")
結果
プレーンテキスト
Microsoft Outlook
使用関数

週最初の曜日を取得

コントロール パネル\時計と地域\地域日付と時刻の形式にある週の最初の曜日の項目を取得します。レジストリのiFirstDayOfWeekが返す値は0が月曜日、1が火曜日、…、6が日曜日のようになります。

.png
UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM firstdayofweek = WshShell.RegRead("HKEY_CURRENT_USER\Control Panel\International\iFirstDayOfWeek")
DIM weeks[] = "月", "火", "水", "木", "金", "土", "日"

PRINT firstdayofweek
PRINT weeks[firstdayofweek]
結果
プレーンテキスト
6
日
使用関数

レジストリから現在設定されているタイムゾーンを取得

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM TimeZoneKeyName = WshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\TimeZoneKeyName")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\" + TimeZoneKeyName + "\Display")
結果
プレーンテキスト
(UTC+09:00) 大阪、札幌、東京
使用関数

戻り値

説明 形式
REG_SZ 文字列 文字列
REG_DWORD 数値 整数
REG_BINARY 2 進数の値 VBArray (整数)
REG_EXPAND_SZ 展開可能な文字列 文字列
REG_MULTI_SZ 文字列の配列 VBArray (文字列)

ルートキー名と短縮形

RegReadではルートキー名の省略形を使うことができます。

ルートキー名 短縮形
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_CLASSES_ROOT HKCR
HKEY_USERS HKEY_USERS
HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG