投稿者 snowmansnow  (社会人) 投稿日時 2021/6/19 17:53:22
こんにちは、るきお様、魔界の仮面弁士様、皆様

windows searchで、システムプロパティやディスプレイネームを使って検索できるので、
システムプロパティやディスプレイネームを勉強しています


https://docs.microsoft.com/en-us/windows/win32/properties/windows-properties-system(※1)
では、システムプロパティは、1017ある事になっていますが、
ダウンロードできて確認できるpdfの日付は2018年になっています。
今2021年現在、システムプロパティが、1017個なのか確認したり、
その全部のシステムプロパティのキャノニカルネームをVBAで動的に確認する方法はありますか?

https://www.codeproject.com/Articles/1156123/The-Windows-Property-System(※2)を参考に、
1017のシステムプロパティのディスプレイネームを取得するクラスライブラリを作りましたが、
取得エラーがあり、可能なディスプレイネームを取得できているのかも疑問です。(515個)


下記が、C#で作った、ウィンドウズフォーム、クラスライブラリです。
Windows10pro 64bit Excel2016 32bit

※2のWebからDLできるC#のソースをビルドしてできるDLLを参照しています。
VS2019で作りました

using System;
using System.Runtime.InteropServices;
using WinProps;

namespace WindowsFormsAppWPSCS
{
    [Guid(WPSCL.ClassId)]
    public class WPSCL
    {
        //  COM用のGUID値
        public const string ClassId = "3096DBAE-74E9-4636-B1DE-3E2EF9A0BF1C";

        string rvalue;

        public string GetDisplayNameFromCName(string cName)
        {
            PropertyDescription test1 = new PropertyDescription(cName);
            rvalue = cName + "," + test1.DisplayName;
            return rvalue;
        }
    }
}


できれば、ディスプレイネームもをVBAで動的に確認する方法があると嬉しいです。

よろしくお願いします。