投稿者 snowmansnow  (社会人) 投稿日時 2021/6/21 21:43:25
こんばんは、魔界の仮面弁士様。
忙しい中、お返事ありがとうございます。
詳しい説明ありがとうございます。
私のバージョンは、10.0.19041.0だったようで、
書いて下さった通り1035個でした。
でも、当初の1017個と比べて、
System.Devices.AepService.Bluetooth.GattService.CacheMode
System.Devices.AepService.Bluetooth.GattService.Device
System.Devices.AepService.Bluetooth.RfcommService.CacheMode
System.Devices.AepService.Bluetooth.RfcommService.Device
の4個がpropkey.hに無くて、
魔界の仮面弁士様の追加19個と比べて
System.StorageProviderFileFlags
System.LastSyncWarning
System.Devices.Aep.Bluetooth.LastSeenTime
System.Devices.SchematicName
の4個が多く、
魔界の仮面弁士様の追加の中にある、
System.StorageProviderFileHasConflict
1個が見当たりませんでした。(これは最新SDKでないからかも)

SDKも自分で入れたりしてるのですが、
魔界の仮面弁士様の、最新の、
windows 10 SDK v2104 … 1036 個 (10.0.20348.0)などは、
自分で毎回インストールしないと、更新しないものでしょうか?
propkey.hが見当たらない環境での確認方法は無いでしょうか?

昨日のクラスライブラリのDisplayNameをCanonicalNameにしたクラスライブラリでは
System.Search.ExtendedProperties
System.EdgeGesture.DisableTouchWhenFullscreen
System.Devices.AepService.Bluetooth.GattService.CacheMode
System.Devices.AepService.Bluetooth.GattService.Device
System.Devices.AepService.Bluetooth.RfcommService.CacheMode
System.Devices.AepService.Bluetooth.RfcommService.Device
System.StorageProviderFileHasConflict
がキャノニカルネームで認識されませんでした。

ディスプレイネームは、
System.AppUserModel.VisualElementsManifestHintPath
が増えて516個になりました。

for each in~ などで、全部取り出すやり方は、無いのでしょうか?

windows searchの方は
Sub DS2()
On Error Resume Next
Dim objConnection As Connection
Dim objRecordSet As Recordset
Dim ws As Worksheet

Set objConnection = CreateObject("ADODB.Connection")

Dim s(30)

s(0) = "System.FileName"
s(1) = "System.Address.Country"
s(2) = "System.Address.CountryCode"
s(3) = "System.Address.Region"
s(4) = "System.Address.RegionCode"
s(5) = "System.Address.Town"
s(6) = "System.ContentId"
s(7) = "System.ContentUri"
s(8) = "System.Devices.AudioDevice.Microphone.SensitivityInDbfs2"
s(9) = "System.Devices.Panel.PanelGroup"
s(10) = "System.Devices.Panel.PanelId"
s(11) = "System.Supplemental.Album"
s(12) = "System.Supplemental.Location"
s(13) = "System.Supplemental.Person"
s(14) = "System.Supplemental.Tag"
s(15) = "System.AppUserModel.VisualElementsManifestHintPath"
s(16) = "System.Devices.AudioDevice.Microphone.IsFarField"
s(17) = "System.Devices.PhoneLineTransportDevice.Connected"
s(18) = "System.Devices.ChallengeAep"
s(19) = "System.StorageProviderFileFlags"
s(20) = "System.LastSyncWarning"
s(21) = "System.Devices.Aep.Bluetooth.LastSeenTime"
s(22) = "System.Devices.SchematicName"
s(23) = "System.StorageProviderFileHasConflict"

Set objRecordSet = CreateObject("ADODB.Recordset")

objConnection.Open "Provider=Search.CollatorDSO;Extended Properties='Application=Windows';"

For i = 1 To 23

sql1 = "SELECT "
sql1 = sql1 & s(0) & "," & s(i)
 
sql1 = sql1 & " FROM SystemIndex "

objRecordSet.Open sql1, objConnection

Worksheets(1).Select
Worksheets.Add
Set ws = Worksheets(1)

With ws
.Cells(1, 1).Value = s(0)
.Cells(1, 2).Value = s(i)
.Range("A2").CopyFromRecordset objRecordSet
.Name = i
End With

objRecordSet.Close
Next
Set objRecordSet = Nothing

objConnection.Close
Set objConnection = Nothing
End Sub

で、SystemIndex内の存在を追加で確認できました。
できれば、動的に確認したいです。