CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何检测系统有无某个控件,如FLASH 的OCX,并且其版本是什么?

楼主webjimcn(唉,啥时超过gats)2003-09-01 11:52:57 在 VC/MFC / 基础类 提问

如何检测系统有无FLASH   控件,并且其版本是什么? 问题点数:50、回复次数:2Top

1 楼ruanyuping()回复于 2003-09-01 12:17:43 得分 0

upTop

2 楼bcpl(林平之)回复于 2003-09-01 12:33:13 得分 50

CString   GetRegString(LPCTSTR   lpszRegValueName)  
  {  
          CString   sRegValueName(lpszRegValueName);  
          CString   sRootKey,   sSubKey,   sValueName;  
          HKEY   hRootKey,   hSubKey;  
          const   int   BUF_SIZE   =   256;  
          char   buf[BUF_SIZE];  
          DWORD   dwBufLen   =   BUF_SIZE;  
   
          int   t1,   t2;  
          t1   =   sRegValueName.Find('\\',   0);  
          sRootKey   =   sRegValueName.Left(t1);  
          t2   =   sRegValueName.ReverseFind('\\');  
          sValueName   =   sRegValueName.Mid(t2   +   1);  
          t1++;  
          sSubKey   =   sRegValueName.Mid(t1,   t2   -   t1);  
   
          sRootKey.MakeUpper();  
          if(sRootKey   ==   "HKEY_CLASSES_ROOT")  
                  hRootKey   =   HKEY_CLASSES_ROOT;  
          else   if(sRootKey   ==   "HKEY_CURRENT_USER")  
                  hRootKey   =   HKEY_CURRENT_USER;  
          else   if(sRootKey   ==   "HKEY_LOCAL_MACHINE")  
                  hRootKey   =   HKEY_LOCAL_MACHINE;  
          else   if(sRootKey   ==   "HKEY_USERS")  
                  hRootKey   =   HKEY_USERS;  
          else   if(sRootKey   ==   "HKEY_CURRENT_CONFIG")  
                  hRootKey   =   HKEY_CURRENT_CONFIG;  
   
          if(::RegOpenKeyEx(hRootKey,   sSubKey,   0,   KEY_QUERY_VALUE,   &hSubKey)   !=   ERROR_SUCCESS)  
                  return   "";  
   
          CString   sValue;  
          if(::RegQueryValueEx(hSubKey,   sValueName,   NULL,   NULL,   (LPBYTE)buf,   &dwBufLen)   ==   ERROR_SUCCESS)  
          {  
                  sValue   =   buf;  
          }  
          ::RegCloseKey(hSubKey);  
          return   sValue;  
  }  
   
   
  void   COcx1Dlg::OnCheck()    
  {  
          CString   sOcxFile   =   GetRegString("HKEY_CLASSES_ROOT\\CLSID\\{D27CDB6E-AE6D-11cf-96B8-444553540000}\\InprocServer32\\");  
   
          if(!sOcxFile.IsEmpty())  
          {  
                  DWORD   dw;  
                  DWORD   size   =   GetFileVersionInfoSize((LPTSTR)(LPCTSTR)sOcxFile,   &dw);  
   
                  LPVOID   pData   =   new   BYTE[size];  
                  if(GetFileVersionInfo((LPTSTR)(LPCTSTR)sOcxFile,   0,   size,   pData))  
                  {  
                          struct   LANGANDCODEPAGE  
                          {  
                                  WORD   wLanguage;  
                                  WORD   wCodePage;  
                          }   *lpTranslate;  
                          UINT   cbTranslate;  
                          VerQueryValue(pData,   "\\VarFileInfo\\Translation",   (LPVOID*)&lpTranslate,   &cbTranslate);  
                           
                          CString   sSubBlock;  
                          sSubBlock.Format("\\StringFileInfo\\%04x%04x\\FileVersion",   lpTranslate[0].wLanguage,   lpTranslate[0].wCodePage);  
                           
                          LPSTR   lpszVerInfo;  
                          UINT   cbVerInfo;  
                          VerQueryValue(pData,   sSubBlock.GetBuffer(0),   (LPVOID*)&lpszVerInfo,   &cbVerInfo);  
                           
                          CString   sInfo;  
                          sInfo.Format("已安装Flash控件\n文件:%s\n版本:%s",   sOcxFile,   lpszVerInfo);  
                          AfxMessageBox(sInfo);  
   
                  }  
          }   //   end   if(!sOcxFile.IsEmpty())  
  }  
   
  测试程序http://my.6to23.com/cigarette/ocx1.zipTop

相关问题

  • mspaint 的 ocx 控件
  • 下载OCX控件
  • 哪里有播放FLASH动画的控件,要VCL,不要OCX。
  • FLASH控件
  • 如何注册Ocx控件?
  • ******asp与ocx控件问题******
  • 如何注册OCX控件
  • 如何调试OCX控件?
  • 怎么注册ocx控件?
  • ocx控件注册问题!!

关键词

  • srootkey
  • hrootkey
  • sregvaluename
  • ssubkey
  • hkey
  • buf
  • cstring
  • current
  • else
  • size

得分解答快速导航

  • 帖主:webjimcn
  • bcpl

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo