任何人对如何如果安装了Windows Media Player中以编程方式检测什么建议吗?
我知道的注册表设置查找,但因为它是不是有点误导(卸载可能无法删除它)更不信任它。 而且我认为刚刚推出了视频,但一个错误可能比没有安装媒体播放器以外的东西造成的,所以它要么是没有定论。
理想情况下,我宁愿这可能来自我的C ++应用程序,我使用的解决方案NSIS安装程序。 但是,我的C ++应用程序是最重要的,我愿意住在安装程序的注册表破解。
任何人对如何如果安装了Windows Media Player中以编程方式检测什么建议吗?
我知道的注册表设置查找,但因为它是不是有点误导(卸载可能无法删除它)更不信任它。 而且我认为刚刚推出了视频,但一个错误可能比没有安装媒体播放器以外的东西造成的,所以它要么是没有定论。
理想情况下,我宁愿这可能来自我的C ++应用程序,我使用的解决方案NSIS安装程序。 但是,我的C ++应用程序是最重要的,我愿意住在安装程序的注册表破解。
看看IsInstalled
下键值HKLM\Software\Microsoft\Active Setup\Installed Components\{22d6f312-b0f6-11d0-94ab-0080c74c7e95}
这是1
如果已安装, 0
,否则。
见从应用程序检测Windows媒体播放器 。
(你不说,无论你是检查是否有嵌入(即OCX)的球员在你的应用程序或EXE从应用extenally推出嵌入。)
如何在您的应用程序检查HRESULT CoCreateInstance的上针对CLSID {22d6f312-b0f6-11d0-94ab-0080c74c7e95} /进程id “MediaPlayer.MediaPlayer.1”? (从CLSID的http://technet.microsoft.com/en-us/library/bb676121.aspx )
在您的安装只是检查HKEY_CLASSES_ROOT \ CLSID {22D6F312-B0F6-11D0-94AB-0080C74C7E95},或许也是在InprocServer32的子项存在的路径。
如果卸载失败,除去两个EXE和注册表项,然后我很怀疑它卸载什么...
所以,我建议你检查下的注册表HKLM\Software\Microsoft\MediaPlayer\
,如果它存在,抢的价值Installation Directory
或Installation DirectoryLFN
(默认为%ProgramFiles%\Windows Media Player
),并检查wmplayer.exe
该目录中存在。 如果确实如此,那么你就会知道,安装WMP。