1

当前正在开发的应用程序需要使用 MS Word 对应用程序中的某些文本区域执行拼写检查。

我目前有 Office 2007(即 Office 12 com 对象)。

我的问题是,如果我添加 Office 12 对象,那么在具有 Office 2003 的盒子上会发生什么?这既适用于其他开发盒,也适用于最终用户。

我是否认为最终结果将是这些用户无法使用拼写功能?如果我使用 Office 11 对象,这是否意味着如果用户安装了 Office 07,他们将无法执行拼写检查?

4

5 回答 5

1

我们放弃了尝试使用对 Word 的依赖,因为两者都安装了不同的版本或根本没有安装 Office!而是选择NetSpell

于 2008-10-02T05:12:12.970 回答
0

我在这里猜测,但是如果您不能在 2003 安装中使用 2007 PIA(主互操作程序集),您可以尝试通过反射访问 PIA,因为我猜您想要的调用不会在二,然后没关系-您将使用已安装的任何一个。如果你也在安装 PIA,那么你可以让用户告诉你他们有哪些,或者更聪明一点,试试 2007,如果失败,试试 2003。

就像我说的,我猜这里但它可能值得一试。

编辑:我发现这个关于 Office PIA 的链接。这指的是 Excel,但实际上通常涵盖 Office。我不羡慕你的任务。看起来您需要检测 PIA(可能已安装也可能未安装)并采取相应措施。对我来说,这听起来像是一份反思的工作。

于 2008-10-01T21:41:19.170 回答
0

较新版本的 Office 将保持与旧版本 COM 对象的大部分(如果不是全部)兼容性。这意味着如果您想针对 Office 2003 和 2007 进行编程,您将需要使用 Office 11 COM 对象作为依赖项,因为它们是 2003 发布时可用的最新版本。只要您确认您需要的方法在两个版本的 COM 对象中都存在,只要您使用较旧的 COM 对象,您就应该没有问题。

不幸的是,虽然我在自己的工作中使用了这个解决方案,但我还没有使用拼写检查对其进行测试。最后,请确保使用您希望集成的所有版本的 Office 测试您的代码。

于 2008-10-05T20:42:26.993 回答
0

我对这个问题的直觉反应是简单地建议你走另一条路。尝试使用第 3 方拼写检查控件。它们相对便宜(您可能会发现一些免费控件)。至少通过这种方式,您可以控制应用程序中包含的控件的版本,并能够依赖它的功能。坦率地说,我很惊讶这个库还没有内置到 Windows 中。当然,Windows 支持的所有语言都很复杂,但现在就用户期望而言,它类似于复制/粘贴。

于 2008-10-10T07:04:50.697 回答
0

您实际上可以打包在两个版本中工作所需的 office11 和 office12 互操作。这需要一些小工作,但我设法做到了。我在注册表中检查以查看要调用哪个互操作,然后使用正确的版本执行拼写检查。它甚至可以检查您是否安装了 Word,并引发错误警报,如果没有 Word,您将无法进行拼写检查。由于我们需要使用与 Office 绑定的医学词典,因此我们与使用 Word 息息相关。

搜索 interop 或 Com 包装器,我想你会发现你可以很容易地使用它们。

于 2009-03-25T06:20:07.230 回答