Вопрос

Приложение, находящееся в настоящее время в разработке, имеет требования для использования MS Word для проверки орфографии в определенных текстовых областях приложения.

В настоящее время у меня есть Office 2007 (это объекты Office 12 com).

Мой вопрос: если я добавлю объекты Office 12, что произойдет с ящиками с Office 2003?Это касается как других модулей разработки, так и конечных пользователей.

Прав ли я, полагая, что конечным результатом будет то, что возможности заклинаний не будут доступны для этих пользователей?И если бы я использовал объект Office 11, означало бы ли это, что пользователи не смогут выполнять проверку орфографии, если у них установлен Office 07?

Это было полезно?

Решение

Мы отказались от попыток использовать зависимость от Word, поскольку в обоих случаях установлены разные версии или вообще не установлен Office!Вместо этого выбрав NetSpell.

Другие советы

Я предполагаю, что здесь, но если вы не можете использовать PIA 2007 (первичную сборку взаимодействия) с установкой 2003 года, вы можете попробовать получить доступ к PIA через отражение, поскольку я предполагаю, что нужные вам вызовы не будут меняться между два, и тогда это не будет иметь значения — вы будете использовать тот, который установлен.Если вы также устанавливаете PIA, вы можете либо попросить пользователя сообщить вам, какой у него установлен, либо проявить немного больше ума и просто попробовать 2007, а если не получится, попробовать 2003.

Как я уже сказал, я предполагаю, но, возможно, стоит попробовать.

РЕДАКТИРОВАТЬ:я нашел это связь об Office PIA.Это относится к Excel, но на самом деле относится к Office в целом.Я не завидую твоей задаче.Похоже, вам нужно обнаружить PIA (который может быть установлен, а может и не быть) и действовать соответствующим образом.Для меня это звучит как работа для размышлений.

Новые версии Office сохранят большую часть, если не всю, совместимость со старыми версиями COM-объектов.Это означает, что если вы хотите программировать для Office 2003 и 2007, вам нужно будет использовать COM-объекты Office 11 в качестве зависимости, поскольку они были новейшими доступными на момент выпуска 2003 года.Если вы убедитесь, что нужные вам методы существуют в обеих версиях COM-объектов, у вас не должно возникнуть проблем, пока вы используете более старые COM-объекты.

К сожалению, хотя я использовал это решение в своей работе, я не проверял его с помощью проверки орфографии.В конце убедитесь, что вы протестировали свой код со всеми версиями Office, с которыми вы хотите интегрироваться.

Моя инстинктивная реакция на этот вопрос — просто предложить вам пойти другим путем.Попробуйте использовать стороннюю программу проверки правописания.Они относительно недороги (и вы можете найти некоторые бесплатные элементы управления).По крайней мере, таким образом вы сможете контролировать версию элемента управления, включенного в ваше приложение, и полагаться на его функциональность.Честно говоря, я удивлен, что эта библиотека еще не встроена в Windows.Конечно, это сложно со всеми языками, которые поддерживает Windows, но в наши дни с точки зрения ожиданий пользователей это похоже на копирование/вставку.

Фактически вы можете упаковать взаимодействия Office11 и Office12, необходимые для работы в ОБЕИХ версиях.Это требует небольшой работы, но мне удалось это сделать.Я проверяю реестр, чтобы узнать, какое взаимодействие вызывать, а затем выполняю проверку орфографии с правильной версией.Он даже доходит до того, что проверяет, установлен ли у вас Word, и выдает предупреждение об ошибке, что вы не можете проверить орфографию без Word.Мы привязаны к использованию Word из-за медицинского словаря, привязанного к Office, который мы обязаны использовать.

Выполните поиск по оболочкам Interop или Com, и я думаю, вы обнаружите, что можете довольно легко использовать и то, и другое.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top