1

現在開発中のアプリケーションには、MSWordを使用してアプリケーション内の特定のテキスト領域でスペルチェックを実行するための要件が​​あります。

現在、Office 2007(Office 12 comオブジェクト)を使用しています。

私の質問は、Office 12オブジェクトを追加すると、Office2003のあるボックスで何が起こるかということです。これは、他の開発ボックスとエンドユーザーの両方に関連しています。

最終的には、それらのユーザーがスペル機能を利用できなくなると信じているのは正しいですか?また、Office 11オブジェクトを使用した場合、Office 07がインストールされていると、ユーザーはスペルチェックを実行できなくなりますか?

4

5 に答える 5

1

両方に異なるバージョンがインストールされているか、Office がまったくインストールされていないため、Word への依存関係を使用することを断念しました。代わりにNetSpellを選択します。

于 2008-10-02T05:12:12.970 に答える
0

ここで推測していますが、2003のインストールで2007 PIA(Primary Interop Assembly)を使用できない場合は、リフレクションを介してPIAにアクセスしてみてください。これは、必要な呼び出しが2つあれば、それは問題ではありません。インストールされている方を使用します。PIAもインストールしている場合は、ユーザーにPIAをインストールしてもらうか、もう少し賢くして2007を試してみてください。失敗した場合は、2003を試してください。

私が言ったように、私はここで推測していますが、試してみる価値があるかもしれません。

編集:私はOfficePIAについてのこのリンクを見つけました。これはExcelを指しますが、実際にはOffice全般を対象としています。私はあなたが持っている仕事をうらやましくない。PIA(インストールされている場合とされていない場合があります)を検出し、それに応じて動作する必要があるようです。私には反省の仕事のように聞こえます。

于 2008-10-01T21:41:19.170 に答える
0

新しいバージョンの Office は、古いバージョンの COM オブジェクトとのすべての互換性とは言わないまでもほとんどの互換性を維持します。つまり、Office 2003 および 2007 に対してプログラムする場合は、Office 11 COM オブジェクトを依存関係として使用する必要があります。これは、Office 11 COM オブジェクトが 2003 のリリース時に利用可能な最新のものであったためです。必要なメソッドが両方のバージョンの COM オブジェクトに存在することを確認する限り、古い COM オブジェクトを使用する限り問題はありません。

残念ながら、私はこのソリューションを自分の仕事に使用しましたが、スペル チェックでテストしていません。最後に、統合するすべてのバージョンの Office でコードをテストしてください。

于 2008-10-05T20:42:26.993 に答える
0

実際には、両方のバージョンで動作するために必要な office11 と office12 の両方の相互運用機能をパッケージ化できます。細かい作業が必要ですが、なんとかできました。レジストリでチェックを行い、どの相互運用機能を呼び出すかを確認してから、正しいバージョンでスペル チェックを実行します。Word がインストールされているかどうかのチェックまで行って、Word がないとスペル チェックができないというエラー アラートをスローします。Office に関連付けられている医学辞書を使用する必要があるため、Word の使用に縛られています。

相互運用機能または Com ラッパーを検索すると、どちらもかなり簡単に使用できることがわかると思います。

于 2009-03-25T06:20:07.230 に答える
0

この質問に対する私の直感的な反応は、単に別のルートに進むことを提案することです. サードパーティのスペル チェック コントロールを使用してみてください。それらは比較的安価です (そして、無料のコントロールがいくつか見つかるかもしれません)。少なくともそのようにして、アプリに含まれるコントロールのバージョンを制御し、その機能に依存することができます。率直に言って、このライブラリがまだ Windows に組み込まれていないことに驚いています。確かに、Windows がサポートするすべての言語では複雑ですが、最近では、ユーザーの期待という点ではコピー/貼り付けに似ています。

于 2008-10-10T07:04:50.697 に答える