民間企業のWebサイトのいくつかのフィールドのスペルチェッカーとしてMSWordを使用しており、IEのセキュリティ設定が正しければうまく機能します。(サイトのゾーンがTrustedに設定され、Trusted Zoneが変更されて、プロンプトなしで制御を実行できるようになりました。)
使用しているスクリプトは、単語オブジェクトを作成し、後で閉じます。オブジェクトが存在する間、winword.exeプロセスは実行されますが、Wordオブジェクトが閉じられると破棄されます。
サイトが信頼できるゾーン(デフォルトのセキュリティレベルのインターネットゾーン)に設定されていない場合、Wordオブジェクトを作成する呼び出しは期待どおりに失敗しますが、winword.exeプロセスは引き続き作成されます。スクリプトでこのプロセスを操作する方法がないため、ユーザーがログオフするまでプロセスはそのままになります(ユーザーはプロセスを手動で破棄する方法がなく、破棄したとしても適切な解決策にはなりません。 )。
オブジェクトを作成しようとする呼び出しは...
try {
wordApplication = new ActiveXObject('Word.Application');
} catch(error) {
// irrelevant code removed, described in comments..
// notify user spell check cannot be used
// disable spell check option
}
したがって、ページが読み込まれるたびに、このコードが再度実行され、さらに別の孤立したwinword.exeプロセスが作成される可能性があります。
wordApplication
もちろん、catchブロックでは未定義です。
ブラウザのセキュリティ設定を事前に検出できるようにしたいのですが、これを検索してみましたが、可能ではないと思います。
ここの経営陣はそれなりに満足しています。IEのセキュリティが正しく設定されている限り、それは機能し、私たちの目的にはうまく機能します。(最終的には、スペルチェック機能の他のオプションを検討する可能性がありますが、これは迅速で安価であり、必要なすべてのことを実行します。)
この最後の問題は私を悩ませ、私はそれについて何かしたいのですが、私はアイデアがなく、他にも注意が必要なことがあります。
脇に置く前に、ここで提案をお願いしたいと思いました。