我在C#中使用DirectShow.NET列出了DirectShow过滤器。我按IFilterMapper2.EnumMatchingFilters()
获得了过滤器列表。但我只有FriendlyName
和FilterData
:
hr = propertyBag.Read("FriendlyName", out friendlyName, null);
hr = propertyBag.Read("FilterData", out filterDataObj, null);
我希望获得"文件名"和"文件版本",其中显示GraphStudioNext和其他工具。我该如何检索这些信息?
答案 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;