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

使用C+从系统注册表中检索ActiveX classID+; 我在Windows应用程序中使用了一个嵌入SkavkFlash播放器的C++程序,C++部分应该能够调用Flash电影方法,反之亦然。最初的实验是使用MFC来完成的。它是有效的。但是现在我想把它移植到QT上,因为它允许更容易的UI开发。Qt有QAxObject,它保存了你通过它分配的ActiveX控件。setCotrol()方法,该方法应获取ActiveX或其名称的classID。因为classID比名称更可靠,而且我还没有找到使用名称访问flash player ActiveX的示例,现在我想知道如何从操作系统的系统注册表中检索该classID。我想对于每台机器,某些特定的activeX classID可能会有所不同(如果我在这方面有错误,请更正我)。如果它是真的,那么我需要访问注册表,找到shockwave activeX classID,然后将其传递到QaxObject::setControl()方法。我该怎么做,c++,flash,qt,activex,registry,C++,Flash,Qt,Activex,Registry,忘记提到,在MFC应用程序中,一旦您从可用系统控件列表中选择ActiveX类型,ActiveX控件将自动获取请求的ActiveX。在Qt中,您没有这样的选项 读了这篇文章,我知道CLASSID在任何机器上都是常数。这是真的吗?如果是,请放弃我的问题,因为没有理由通过ProgID在特定计算机上搜索ActiveX键,如果它始终相同。 谢谢 最好按mime类型从注册表中查询。您可以在此处找到存储位置的详细信息: 您可以在注册表中查找mimetype并从中获取CLSID。您也可以按名称查找它;两个注

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


读了这篇文章,我知道CLASSID在任何机器上都是常数。这是真的吗?如果是,请放弃我的问题,因为没有理由通过ProgID在特定计算机上搜索ActiveX键,如果它始终相同。
谢谢

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


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

如果您在注册表中查找控件名称来查找CLSID,则您所做的与创建名称的控件相同,只是要付出更多的努力。您所说的很好,但我需要一个实际的例子。在C++中没有实现它的例子。