具有详细信息的DirectShow过滤器列表

时间:2015-11-27 09:18:18

标签: c# directshow directshow.net

我在C#中使用DirectShow.NET列出了DirectShow过滤器。我按IFilterMapper2.EnumMatchingFilters()获得了过滤器列表。但我只有FriendlyNameFilterData

hr = propertyBag.Read("FriendlyName", out friendlyName, null);
hr = propertyBag.Read("FilterData", out filterDataObj, null);

我希望获得"文件名"和"文件版本",其中显示GraphStudioNext和其他工具。我该如何检索这些信息?

1 个答案:

答案 0 :(得分:2)

我查看了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;