gpt4 book ai didi

c++ - 使用 C++ 从系统注册表中检索 ActiveX classID

转载 作者:行者123 更新时间:2023-11-28 08:15:13 25 4
gpt4 key购买 nike

我正在开发一个嵌入了 Shockwave Flash 播放器的 Windows 应用程序。C++ 部分应该能够调用 Flash 电影方法,反之亦然。最初的实验是使用 MFC 完成的。它有效。但现在我想将它移植到 Qt,因为它允许更容易的 UI 开发。Qt 有 QAxObject,它包含您通过 setCotrol() 方法分配给它的 ActiveX 控件,它应该获得 ActiveX 的类 ID 或其名称。因为类 ID 比名称更可靠并且因为我没有找到使用名称访问 flash player ActiveX 的示例,现在我想知道如何从操作系统的系统注册表中检索该 classID。我想对于每台机器,某些特定的 activeX classID 可能会有所不同(正确我,如果我错了)。如果是真的,那么我需要访问注册表,找到 shockwave activeX classid,然后将它传递给 QaxObject::setControl() 方法。我该怎么做?

忘记提及,在 MFC 应用程序中,一旦您从可用系统控件列表中选择 ActiveX 类型,ActiveX 控件就会自动获取请求的 ActiveX。在 Qt 中,您没有这样的选项。


阅读此 http://www.nirsoft.net/utils/acm.html我知道 CLASSID 在任何机器上都是不变的。是真的吗?如果是,那么请放弃我的问题,因为如果 ProgID 始终相同,则没有理由在特定机器上搜索 ActiveX key 。谢谢。

最佳答案

最好从注册表中按mime 类型查询。您可以在此处找到有关存储位置的详细信息:

http://msdn.microsoft.com/en-us/library/aa751976%28v=vs.85%29.aspx

您可以在注册表中查找 mimetype 并从中获取 CLSID。您也可以按名称查找它;该文档中解释了两个注册表项的位置。

关于c++ - 使用 C++ 从系统注册表中检索 ActiveX classID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895704/

25 4 0