2010-05-31 59 views
2

我想在我的应用程序中使用系统可用的windows media player可视化器。 Apperently展示器向世界展示一个IWMPEffects界面。我的问题是如何枚举和创建实例到我的系统上可用的可视化器?可能它只是获取可视化器的cslid的过程,然后使用CoCreateInstance创建实例。但我不知道如何获得这些clsid!枚举和使用wmp可视化器

谢谢!

回答

2

实现IWMPEffects的对象的CLSID作为HKLM\SOFTWARE\Microsoft\MediaPlayer\Objects\Effects的子项存储。

+0

我想你是在正确的轨道上,信息肯定是在注册表中。不过,我只找到一个可视化引用,这就是“Viz插件”。我认为这个插件在另一个地方查找已安装的可视化器。 我已经安装了一个驻留在“Pulsing.dll”中的viz。在注册表中快速搜索它会让我变得十分尴尬,但是我一直无法追踪这个clsid的来源! 也许使用一些工具来查看启动时从注册表中提取的Windows Media Player是什么? – monoceres 2010-05-31 12:18:29

+0

Mmm各种可视化工具的CLSID必须位于注册表中的某个位置,否则WMP应枚举整个HKEY_CLASSES_ROOT \ CLSID,这不可行!然而,我在答案中提供的关键是最合乎逻辑的地方... 如果我没有记错,Windows Media Center也使用相同的可视化,并且它是.net应用程序,您可以使用Reflector进行检查;) – Wizard79 2010-05-31 12:25:52

+0

我得到了它!使用sysinternals的进程监视器来监视wmp读取哪些键,搜索我已知的clsid和bang!发现可视化器存储在HKLM \ SOFTWARE \ Microsoft \ MediaPlayer \ Objects \ Effects中 如果您编辑您的帖子以反映此启示,我将其标记为解决方案;) – monoceres 2010-05-31 16:17:38