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
結果
UWSC
オフライン作業は利用できません
使用関数

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

UWSC
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
PRINT WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe\")
結果
UWSC
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\")
結果
UWSC
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\")
結果
UWSC
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\")
結果
UWSC
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")
結果
UWSC
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")
結果
UWSC
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\")
結果
UWSC
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]
結果
UWSC
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")
結果
UWSC
(UTC+09:00) 大阪、札幌、東京
使用関数

インストールされている.NET Frameworkのバージョンを取得

レジストリでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Releaseの値を取得し、この値から.NET Frameworkのバージョンを求めます。

UWSC
HASHTBL version
version["378389"] = ".NET Framework 4.5"
version["378675"] = ".NET Framework 4.5.1"
version["378758"] = ".NET Framework 4.5.1"
version["379893"] = ".NET Framework 4.5.2"
version["393295"] = ".NET Framework 4.6"
version["393297"] = ".NET Framework 4.6"
version["394254"] = ".NET Framework 4.6.1"
version["394271"] = ".NET Framework 4.6.1"
version["394802"] = ".NET Framework 4.6.2"
version["394806"] = ".NET Framework 4.6.2"
version["460798"] = ".NET Framework 4.7"
version["460805"] = ".NET Framework 4.7"
version["461308"] = ".NET Framework 4.7.1"
version["461310"] = ".NET Framework 4.7.1"
version["461808"] = ".NET Framework 4.7.2"
version["461814"] = ".NET Framework 4.7.2"
version["528040"] = ".NET Framework 4.8"
version["528372"] = ".NET Framework 4.8"
version["528449"] = ".NET Framework 4.8"
version["528049"] = ".NET Framework 4.8"
version["533320"] = ".NET Framework 4.8.1"
version["533325"] = ".NET Framework 4.8.1"

DIM WshShell = CREATEOLEOBJ("WScript.Shell")
DIM Release = WshShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release")
PRINT version[Release]
結果
UWSC
.NET Framework 4.8.1
使用関数

戻り値

説明 形式
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