如何在程序中判断flash控件是否安装?

ajn_sailing 2009-07-20 11:53:57
mfc工程框架,在窗口上放置flash activex控件,mfc实例化flash控件实例,问题是可能有些机器未安装flash控件 或安装不正确,这时候程序运行错误

如何在程序中判断机器是否安装flash控件?如果未安装则提示下载安装,这样比较人性化
...全文
508 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyf918 2010-10-03
  • 打赏
  • 举报
回复
test
ajn_sailing 2009-07-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 oyljerry 的回复:]
引用 4 楼 ajn_sailing 的回复:
注册表方法是退而求其次的选择
在程序中判断flash控件实例化是否成功比较合适

你可以在CoCreateInstance创建flash控件的对象时,判断返回值,看是否创建成功就可以知道控件是否有问题,
对于Com组件,各种接口创建,调用等都要做返回值检查,这样就可以知道是否有错误发生,从而避免后面步骤的错误
[/Quote]

创建COM组件可以这样,activex控件能这样简单的创建么?
marrco2005 2009-07-20
  • 打赏
  • 举报
回复
初始化 COM 之后, 判断一下 CLSIDFromProgID 的返回值


CLSID clsid;
if ( SUCCEEDED( CLSIDFromProgID( L"ShockwaveFlash.ShockwaveFlash", &clsid ) ))
{
MessageBox( _T("已安装Flash"),_T("Title"), MB_OK );

}
else
{
MessageBox( _T("未安装Flash"),_T("Title"), MB_OK );

}

fox000002 2009-07-20
  • 打赏
  • 举报
回复
枚举一下已经注册的 ActiveX 控件,看看有没有 flash 控件

http://www.codeguru.com/cpp/com-tech/activex/controls/article.php/c5527
快乐鹦鹉 2009-07-20
  • 打赏
  • 举报
回复
你在一台机器上注册flash控件,然后尝试在注册表中找到它的位置。应该有可以用来判断的特征项,比如UUID之类的。然后你就靠检查注册表的对应项进行判断吧。
oyljerry 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ajn_sailing 的回复:]
注册表方法是退而求其次的选择
在程序中判断flash控件实例化是否成功比较合适
[/Quote]
你可以在CoCreateInstance创建flash控件的对象时,判断返回值,看是否创建成功就可以知道控件是否有问题,
对于Com组件,各种接口创建,调用等都要做返回值检查,这样就可以知道是否有错误发生,从而避免后面步骤的错误
Conry 2009-07-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 marrco2005 的回复:]
初始化 COM 之后, 判断一下 CLSIDFromProgID 的返回值
C/C++ code

CLSID clsid;if ( SUCCEEDED( CLSIDFromProgID( L"ShockwaveFlash.ShockwaveFlash",&clsid ) ))
{
MessageBox( _T("已安装Flash"),_T("Title"), MB_OK );

}else
{
MessageBox( _T("未安装Flash"),_T("Title"), MB_OK );

}
[/Quote]

up
ajn_sailing 2009-07-20
  • 打赏
  • 举报
回复
注册表方法是退而求其次的选择
在程序中判断flash控件实例化是否成功比较合适

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧