2010-05-31 63 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