包含详细信息的 DirectShow 过滤器列表
List of DirectShow filters with details
我有一个使用 DirectShow.NET 在 C# 中编写的 DirectShow 过滤器列表。我通过 IFilterMapper2.EnumMatchingFilters()
获得了过滤器列表。但我只有 FriendlyName
和 FilterData
:
hr = propertyBag.Read("FriendlyName", out friendlyName, null);
hr = propertyBag.Read("FilterData", out filterDataObj, null);
我想要得到 "File Name",和 "File Version",其中显示 GraphStudioNext 和其他工具。我如何检索这些信息?
我查看了 GraphStudioNext 源,发现我必须获取 CLSID 并从注册表中获取 dll 文件名:
hr = propertyBag.Read("CLSID", out clsid, null);
string dllFile = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("CLSID\" + clsid + "\InProcServer32").GetValue("") as string;
最后,可以通过以下方式检索文件版本:
string fileVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(dllFile).FileVersion;
我有一个使用 DirectShow.NET 在 C# 中编写的 DirectShow 过滤器列表。我通过 IFilterMapper2.EnumMatchingFilters()
获得了过滤器列表。但我只有 FriendlyName
和 FilterData
:
hr = propertyBag.Read("FriendlyName", out friendlyName, null);
hr = propertyBag.Read("FilterData", out filterDataObj, null);
我想要得到 "File Name",和 "File Version",其中显示 GraphStudioNext 和其他工具。我如何检索这些信息?
我查看了 GraphStudioNext 源,发现我必须获取 CLSID 并从注册表中获取 dll 文件名:
hr = propertyBag.Read("CLSID", out clsid, null);
string dllFile = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey("CLSID\" + clsid + "\InProcServer32").GetValue("") as string;
最后,可以通过以下方式检索文件版本:
string fileVersion = System.Diagnostics.FileVersionInfo.GetVersionInfo(dllFile).FileVersion;