应用程序目前正在发展的具有要求使用MS Word执行拼写检查的某些文字区域内的应用。

我现在有办公室2007年(这是该办公室的12com对象)。

我的问题是,如果我将在办公室12的对象,会发生什么盒子有办事处2003?这是关于这两个其他发展框,以及最终用户。

我正在认为,最终结果将是拼写能力将不可用于这些用户?如果我用了一个办公室的11个目的将是意味着用户就无法执行的spellchecks如果他们有办公室07安装?

有帮助吗?

解决方案

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

其他提示

我猜这里,但如果它是作为你不能使用2007年PIA(主互操作会)与2003年安装,你可以尝试访问皮亚通过的反思,因为我猜想的话你想不会改变,两者之间,那么它不会有问题-你会用哪个是安装。如果你正在安装PIA,然后,可以获得的用户要告诉你他们或是一个小更聪明,只是尝试,2007年如果失败,试2003年。

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

编辑:我发现这个 链接 有关办公室PIA。这指的是Excel但实际上涵盖了办公室。我并不羡慕的任务。看来你需要检测PIA(这可以或不可以被安装),并采取相应的行动。听起来像一个工作反映到我。

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

不幸的是,尽管我已将此解决方案用于自己的工作,但我还没有使用拼写检查进行测试。最后,请确保使用要集成的所有Office版本测试代码。

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

您实际上可以打包两个版本所需的office11和office12 interops。这需要一些小工作,但我设法做到了。我在注册表中检查以查看要调用的互操作,然后使用正确的版本执行拼写检查。它甚至可以检查你是否安装了Word并抛出一个错误警告,你不能在没有Word的情况下进行拼写检查。由于与我们需要使用的Office绑定的医学词典,我们与使用Word有关。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top