Windows 10環境のOLEScriptキーを持つCLSIDキーエントリの一覧です。
CLSID | 表示名 | ProgID | InProcServer32 |
---|---|---|---|
{cc5bbec3-db4a-4bed-828d-08d78ee3e1ed} | JScript Compact Profile (ECMA 327) | JScript.Compact | %WINDIR%\System32\jscript.dll |
{16d51579-a30b-4c8b-a276-0ff4dc41e755} | JScript Language | JScript | %WINDIR%\System32\jscript9.dll |
{f414c260-6ac0-11cf-b6d1-00aa00bbbb58} | JScript Language | JScript | %WINDIR%\System32\jscript.dll |
{f414c261-6ac0-11cf-b6d1-00aa00bbbb58} | JScript Language Authoring | JScript Author | %WINDIR%\System32\jscript.dll |
{f414c262-6ac0-11cf-b6d1-00aa00bbbb58} | JScript Language Encoding | JScript.Encode | %WINDIR%\System32\jscript.dll |
{B54F3741-5B07-11cf-A4B0-00AA004A55E8} | VB Script Language | VBScript | %WINDIR%\System32\vbscript.dll |
{B54F3742-5B07-11cf-A4B0-00AA004A55E8} | VB Script Language Authoring | VBScript Author | %WINDIR%\System32\vbscript.dll |
{B54F3743-5B07-11cf-A4B0-00AA004A55E8} | VBScript Language Encoding | VBScript.Encode | %WINDIR%\System32\vbscript.dll |
{3F4DACA4-160D-11D2-A8E9-00104B365C9F} | VBScript Regular Expression | VBScript.RegExp | %WINDIR%\System32\vbscript.dll |
{989D1DC0-B162-11D1-B6EC-D27DDCF9A923} | XML Script Engine | XML | %WINDIR%\System32\msxml3.dll |
取得用のソースコードです。
using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Linq; using Microsoft.Win32; class Program { static void Main() { using var hkcr = RegistryKey.OpenBaseKey( RegistryHive.ClassesRoot, RegistryView.Registry64); using var clsidKey = hkcr.OpenSubKey("CLSID"); var oleScriptCLSIDs = GetCLSIDKeyNamesWithSubKey(clsidKey, "OLEScript", StringComparer.OrdinalIgnoreCase); var oleScriptInfos = oleScriptCLSIDs .Select(clsid => { using var key = clsidKey.OpenSubKey(clsid); using var progIdKey = key.OpenSubKey("ProgID"); using var inProcServer32Key = key.OpenSubKey("InProcServer32"); var displayName = (string)key.GetValue(null, null); var progId = (string)progIdKey?.GetValue(null, null); var inProcserver32 = (string)inProcServer32Key?.GetValue(null, null); return (CLSID: clsid, DisplayName: displayName, ProgID: progId, InProcServer32: inProcserver32); }) .ToImmutableArray(); foreach (var oleScriptInfo in oleScriptInfos.OrderBy(info => info.DisplayName)) { var info = oleScriptInfo; info.InProcServer32 = info.InProcServer32?.Replace( Environment.GetEnvironmentVariable("WINDIR"), "%WINDIR%", StringComparison.OrdinalIgnoreCase); Console.WriteLine($"|{info.CLSID}|{info.DisplayName}|{info.ProgID}|{info.InProcServer32}|"); } } static ImmutableArray<string> GetCLSIDKeyNamesWithSubKey( RegistryKey clsidKey, string subKeyName, IEqualityComparer<string> comparer) { var names = new List<string>(); foreach (var keyName in clsidKey.GetSubKeyNames()) { using var key = clsidKey.OpenSubKey(keyName); if (key.GetSubKeyNames().Contains(subKeyName, comparer)) { names.Add(keyName); } } return names.ToImmutableArray(); } }