CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

我如何检测机器上到底是否安装有word,excel,powerpoint等?

楼主lianghao2(lianghao)2006-07-01 18:53:55 在 C++ Builder / 基础类 提问

我本来想调用word,如果没有word,我就调用wordpad  
   
  如何检测是否安装有office 问题点数:100、回复次数:24Top

1 楼mydo(侯佩|hopy|ks)回复于 2006-07-01 19:04:54 得分 10

1   到注册表中查找注册信息  
   
  2   查找   word.exe   文件Top

2 楼freshman2003(秋水长天)回复于 2006-07-01 21:30:16 得分 10

以powerpoint为例,直接查找注册表是否有   HKEY_CLASSES_ROOT\.ppt   这个Key就可以了Top

3 楼lianghao2(lianghao)回复于 2006-07-01 21:40:52 得分 0

楼上这个方法不准确吧Top

4 楼BlueDeepOcean(蓝色·深海)回复于 2006-07-01 22:39:50 得分 10

if   (FileExists("C:\\Program   Files\\Microsoft   Office\\Office10\\WINWORD.EXE"))  
                  ShowMessage("The   File   Exists.");  
  else  
                  ShowMessage("The   File   is   not   Exists!");Top

5 楼BlueDeepOcean(蓝色·深海)回复于 2006-07-01 22:56:36 得分 0

最好不要采用全盘搜索的方式,那样会降低程序的性能。就利用安装程序习惯性的默认路径对目标程序进行查找。Top

6 楼liangqingzhi(老之)回复于 2006-07-01 23:14:28 得分 30

看看这样行不行:  
  加入ComObj.hpp  
   
      try  
      {  
          CreateOleObject("Excel.Application");  
          ShowMessage("已经Excel安装");  
      }  
        catch(...)  
      {  
            ShowMessage("没安装Excel");  
            return;  
      }Top

7 楼lianghao2(lianghao)回复于 2006-07-02 21:47:23 得分 0

楼上方法似乎可行,待我试试Top

8 楼wenyongjie(我们的目标是:没有蛀牙!!)回复于 2006-07-02 22:37:47 得分 10

try  
  {  
          ExcelApp   =   Variant::CreateObject   ("Excel.Application");  
  }  
  catch(...)  
  {  
          ShowMessage("运行Excel出错,请确认安装了Office");  
          return;  
  }    
   
  Top

9 楼wangsaokui(无间道III(终极无间)C#MVP)回复于 2006-07-02 22:42:55 得分 10

http://topic.csdn.net/t/20050316/18/3856562.htmlTop

10 楼ccrun(老妖)(www.ccrun.com)回复于 2006-07-02 23:26:51 得分 10

试着CreateObject或CreateOleObject比较合适。Top

11 楼jaffy(小胖猫^_^笨猫先飞)回复于 2006-07-03 09:26:16 得分 1

现在都流行问简单的问题吗?  
  CreateObject或CreateOleObjectTop

12 楼daydayup234(关中刀客)回复于 2006-07-03 11:00:10 得分 1

http://www.ccrun.com/article/go.asp?i=635&d=g75jbn  
  Top

13 楼DarkSchneider(知我者谓我心忧,不知我者谓我何求)回复于 2006-07-03 11:02:59 得分 1

BlueDeepOcean(蓝色·深海)   (   )   信誉:100     2006-7-1   22:39:50     得分:   0      
     
     
         
  if   (FileExists("C:\\Program   Files\\Microsoft   Office\\Office10\\WINWORD.EXE"))  
                  ShowMessage("The   File   Exists.");  
  else  
                  ShowMessage("The   File   is   not   Exists!");  
   
       
     
  Top      
    BlueDeepOcean(蓝色·深海)   (   )   信誉:100     2006-7-1   22:56:36     得分:   0      
     
     
         
  最好不要采用全盘搜索的方式,那样会降低程序的性能。就利用安装程序习惯性的默认路径对目标程序进行查找。  
   
       
     
  =====================  
   
  还是判断注册表好些吧?要是人家不把office   装到默认目录里呢?Top

14 楼BlueDeepOcean(蓝色·深海)回复于 2006-07-03 11:06:46 得分 1

呵呵,各有利弊。Top

15 楼netying()回复于 2006-07-03 12:27:13 得分 1

这个问题似乎不这么简单  
  我发现有时候try   catch不好用,按理说用了这个,程序不应该再出错误提示,但是有时候还是会有莫名其妙的错误提示Top

16 楼stevenjscn(小胖)回复于 2006-07-03 14:26:00 得分 5

用CCRUN的方法:  
  Variant   vExcel,vWord,vPPoint;  
   
  try  
  {  
          vExcel=CreateOleObject("excel.Application");  
  }  
  catch  
  {  
          MessageDlg("Excel   may   not   be   installed",mtInformation,  
                  TMsgDlgButtons()<<mbOK,0);  
          return;  
  }  
  try  
  {  
          vWord=CreateOleObject("Word.Application");  
  }  
  catch  
  {  
          MessageDlg("Word   may   not   be   installed",mtInformation,  
                  TMsgDlgButtons()<<mbOK,0);  
          return;  
  }  
  try  
  {  
          vPPoint=CreateOleObject("PowerPoint.Application");  
  }  
  catch  
  {  
          MessageDlg("PowerPoint   may   not   be   installed",mtInformation,  
                  TMsgDlgButtons()<<mbOK,0);  
          return;  
  }  
   
   
  Top

17 楼nevergetwin(头球冲顶)回复于 2006-07-04 15:19:05 得分 0

学习一下Top

18 楼FlySkyFree(飞)回复于 2006-07-05 09:43:11 得分 0

学习一下Top

19 楼netying()回复于 2006-07-30 21:36:20 得分 0

再顶Top

20 楼netying()回复于 2006-08-06 09:07:03 得分 0

visio是不是也可以一样判断?  
  try  
  {  
          vWord=CreateOleObject("visio.Application");  
  }  
  catch  
  {  
          ...  
  }  
   
   
  Top

21 楼wxch(wxch)回复于 2006-08-06 10:06:51 得分 0

顶Top

22 楼wxch(wxch)回复于 2006-08-06 10:07:50 得分 0

可以试用老妖的方法。Top

23 楼sfengnet(☆☆☆☆☆)回复于 2006-08-06 18:47:06 得分 0

接分Top

24 楼netying()回复于 2006-08-06 22:42:31 得分 0

为什么word的进程不能自动释放呢?但是excel的可以?Top

相关问题

关键词

得分解答快速导航

  • 帖主:lianghao2
  • mydo
  • freshman2003
  • BlueDeepOcean
  • liangqingzhi
  • wenyongjie
  • wangsaokui
  • ccrun
  • jaffy
  • daydayup234
  • DarkSchneider
  • BlueDeepOcean
  • netying
  • stevenjscn

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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