我如何检测机器上到底是否安装有word,excel,powerpoint等?
我本来想调用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




