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

怎样正确地引用OFFICE?

楼主cdxiaoke(子星)2006-03-04 14:05:45 在 VB / 基础类 提问

在使用OFFICE组件的时候,如果客户机和我的OFFICE版本不一样,在编码的时候我该怎么引用?如果不能确定客户机的OFFICE版本(可能每个客户机的版本都不一样)我该用什么版本?有没有办法使应用程序发布一次就集成各版本的OFFICE组件,而不必针对每个版本进行重新打包发布!  
  问题点数:20、回复次数:6Top

1 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-04 14:30:28 得分 2

打包时,把相关的office文件打进去Top

2 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-04 17:25:39 得分 2

绑定的时候用createobjectTop

3 楼ynhgk1()回复于 2006-03-06 10:15:20 得分 2

引用时,引用OFFICE最低的版本(office2000应该可以了),office高版本都兼容低版本的。Top

4 楼cdxiaoke(子星)回复于 2006-03-08 06:43:17 得分 0

如果本机装的是Office   XP而不是2000怎么办?Top

5 楼hot1kang1(网站制作,系统开发,记得-http://3q2008.Com)回复于 2006-03-08 10:35:46 得分 14

OFFICE组件   是高版本像低版本兼容的,   如果2000   版够用的话,可以在office   2000   版本的环境下开发或是   office   97   ,   在程序运行时,做个office版本检测..代码如下  
  Attribute   VB_Name   =   "modOfficePath"  
  Option   Explicit  
   
  Const   REG_EXPAND_SZ   =   2  
  Const   HKEY_CLASSES_ROOT   =   &H80000000  
  Const   HKEY_CURRENT_USER   =   &H80000001  
  Const   HKEY_LOCAL_MACHINE   =   &H80000002  
  Const   HKEY_USERS   =   &H80000003  
  Const   HKEY_PERFORMANCE_DATA   =   &H80000004  
  Const   ERROR_SUCCESS   =   0&  
   
  Const   RegLocation   =   "software\UnpreXisten\Online   Code   Browser\"  
  Const   RegKey   =   HKEY_LOCAL_MACHINE  
  Dim   AppVer   As   String   *   8  
   
  Declare   Function   RegCloseKey   Lib   "advapi32.dll"   (ByVal   Hkey   As   Long)   As   Long  
   
  Declare   Function   RegCreateKey   Lib   "advapi32.dll"   Alias   "RegCreateKeyA"   (ByVal   Hkey   As   Long,   ByVal   lpSubKey   As   String,   phkResult   As   Long)   As   Long  
   
  Declare   Function   RegDeleteKey   Lib   "advapi32.dll"   Alias   "RegDeleteKeyA"   (ByVal   Hkey   As   Long,   ByVal   lpSubKey   As   String)   As   Long  
   
  Declare   Function   RegDeleteValue   Lib   "advapi32.dll"   Alias   "RegDeleteValueA"   (ByVal   Hkey   As   Long,   ByVal   lpValueName   As   String)   As   Long  
   
  Declare   Function   RegOpenKey   Lib   "advapi32.dll"   Alias   "RegOpenKeyA"   (ByVal   Hkey   As   Long,   ByVal   lpSubKey   As   String,   phkResult   As   Long)   As   Long  
   
  Declare   Function   RegQueryValueEx   Lib   "advapi32.dll"   Alias   "RegQueryValueExA"   (ByVal   Hkey   As   Long,   ByVal   lpValueName   As   String,   ByVal   lpReserved   As   Long,   lpType   As   Long,   lpData   As   Any,   lpcbData   As   Long)   As   Long  
   
  Declare   Function   RegSetValueEx   Lib   "advapi32.dll"   Alias   "RegSetValueExA"   (ByVal   Hkey   As   Long,   ByVal   lpValueName   As   String,   ByVal   Reserved   As   Long,   ByVal   dwType   As   Long,   lpData   As   Any,   ByVal   cbData   As   Long)   As   Long  
  Const   REG_SZ   =   1  
  Const   REG_DWORD   =   4  
   
  Public   Enum   OfficeVer  
          Office_97  
          Office_2000  
          Office_xp  
          Office_2003  
  End   Enum  
  '<CSCM>  
  '--------------------------------------------------------------------------------  
  '   工   程   名:     工程1  
  '   函   数   名:   GetString  
  '   变         量   :     OfKind   (OfficeVer)  
  '   输         入:无  
  '   输         出:OFFICE   的路径  
  '我的机器没有OFFICE   xp   根据97   200   2003的关系  
  '可以看出键值为"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot"  
  '   日         期   :   2005-7-5  
  '   作         者   :         许仙  
  '--------------------------------------------------------------------------------  
  '</CSCM>  
  Public   Function   GetOfficePath(OfKind   As   OfficeVer)   As   String  
   
          Dim   lValueType  
          Dim   keyhand   As   Long,   r  
          Dim   datatype   As   Long  
          Dim   lResult   As   Long  
          Dim   strBuf   As   String  
          Dim   lDataBufSize   As   Long  
          Dim   intZeroPos   As   Integer,   StrKeyName$  
   
          Select   Case   OfKind  
   
                  Case   0  
                          r   =   RegOpenKey(HKEY_LOCAL_MACHINE,   "SOFTWARE\Microsoft\Office\8.0\Common\InstallRoot",   keyhand)  
                          StrKeyName   =   "OfficeBin"  
   
                  Case   1  
                          r   =   RegOpenKey(HKEY_LOCAL_MACHINE,   "SOFTWARE\Microsoft\Office\9.0\Common\InstallRoot",   keyhand)  
                          StrKeyName   =   "Path"  
   
                  Case   2  
                          r   =   RegOpenKey(HKEY_LOCAL_MACHINE,   "SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot",   keyhand)  
                          StrKeyName   =   "Path"  
   
                  Case   3  
                          r   =   RegOpenKey(HKEY_LOCAL_MACHINE,   "SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot",   keyhand)  
                          StrKeyName   =   "Path"  
   
          End   Select  
   
          lResult   =   RegQueryValueEx(keyhand,   StrKeyName,   0&,   lValueType,   ByVal   0&,   lDataBufSize)  
   
          If   lValueType   =   REG_SZ   Then  
   
                  strBuf   =   String(lDataBufSize,   "   ")  
                  lResult   =   RegQueryValueEx(keyhand,   StrKeyName,   0&,   0&,   ByVal   strBuf,   lDataBufSize)  
   
                  If   lResult   =   ERROR_SUCCESS   Then  
   
                          intZeroPos   =   InStr(strBuf,   Chr$(0))  
   
                          If   intZeroPos   >   0   Then  
   
                                  GetOfficePath   =   Left$(strBuf,   intZeroPos   -   1)  
   
                          Else  
   
                                  GetOfficePath   =   strBuf  
   
                          End   If  
   
                  End   If  
   
          End   If  
   
  End   FunctionTop

6 楼cdxiaoke(子星)回复于 2006-03-12 00:48:25 得分 0

谢谢Top

相关问题

  • 怎样检查引用页?
  • 怎样引用函数
  • 谁知道:在WPS中使用VBA时怎样引用office的类型库
  • using Microsoft.Office.Interop.Excel;不正确呢,在那里引用啊??
  • 如何在网页中正确的引用FreeTextBox
  • 为啥引用类不正确?用public static ..
  • 怎样在Delphi中引用视图(View)?
  • xlsheet和xlbook怎样引用啊?
  • 怎样引用web.config内的信息?
  • 怎样引用一个 .pas 文件???

关键词

  • office
  • 版本
  • 组件
  • 客户机
  • software
  • microsoft
  • dll
  • strkeyname
  • keyhand
  • installroot

得分解答快速导航

  • 帖主:cdxiaoke
  • faysky2
  • rainstormmaster
  • ynhgk1
  • hot1kang1

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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