程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 消息篩選器顯示應用程序正在使用中(Word操作,非組件權限問題)的解決發方案

消息篩選器顯示應用程序正在使用中(Word操作,非組件權限問題)的解決發方案

編輯:C#入門知識

剛剛在寫有關Word的操作,其中之一就是數據表的導出。代碼運行一開始沒有問題,但是數據量大了以後,導出一半,就報了“消息篩選器顯示應用程序正在使用中”的錯誤,讓我百思不得其解。反復檢查了代碼確信代碼沒有問題。於是上網找解決方法。但是網上說的都是一些組件權限問題引起的拒絕訪問的錯誤。而我操作Word確是偶爾會遇到這個錯誤,一般情況下正常,只有數據量大時才會報這個錯。所以覺得很詭異。

想來想去,只有一種可能會導致這樣的問題,那就是有其它程序在訪問我所操作的Word或者Word的進程被程序占用了。但是到底是什麼東西在作怪呢。我反復試驗了幾次之後算是明白。現在來說說導致這個問題的根源:

原因就是:word拼寫檢查

當我向Word插入大量數據後,Word的自動拼寫檢查檢測到大量的拼寫錯誤,於是Word彈出了一個提示框,提示用戶存在過多的拼寫錯誤。而我們程序操作Word是讓Word運行在後台,所以程序並不知道Word彈了一個對話框。當程序繼續向Word插入數據時,因為Word的對話框阻塞的Word的進程,所以就會報“消息篩選器顯示應用程序正在使用中”錯誤。

知道根源後解決起來就簡單了:

引用 Microsoft.Office.Interop.Word.dll

Word.Application word=new Word.ApplicationClass();

Word.Document doc=word.Documents.Add(ref missing,ref missing,ref missing,ref missing);

doc.SpellingChecked=false;

doc.ShowSpellingErrors=fase;

關閉Word的拼寫檢查就行了。

問題解決OK。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved