2014-01-23 22 views
0

我正在C#.Net 4中編寫WPF應用程序,其中我試圖打開一個PowerPoint應用程序實例,然後打開一個新演示文稿。檢查PowerPoint是否準備好打開演示文稿(例如已完成加載加載項)

一般的代碼做這個樣子:

var myApp = new Microsoft.Office.Interop.PowerPoint.Application(); 
var myPres = myApp.NewPresentation(Microsoft.Office.Core.MsoTriState.msoTrue); 

這工作得很好,除非在我的情況,在打開時簡報加載VBA外接程序,這需要一些時間來加載。

在這種情況下,PowerPoint會嘗試打開新的演示文稿,失敗並拋出COM異常。

我目前的解決方法是相當可怕:

var myApp = new Microsoft.Office.Interop.PowerPoint.Application(); 
MessageBox.Show("Confirm that PPT has finished opening."); 
var myPres = myApp.NewPresentation(Microsoft.Office.Core.MsoTriState.msoTrue);  

有誰知道的方式之一: 1)測試說完打開PowerPoint? 或2)創建新的Powerpoint.Application時停止加載加載?

當然還有其他解決方案!

我在Microsoft文檔或StackOverflow中找不到任何與此相關的內容。

許多感謝任何幫助, 添Ĵ

回答

0

雖然理論上可以阻止通過移除控制它們的註冊表項,加載插件,這不是一個好主意。

但請注意,當您手動啓動PPT時,當加載項加載時(甚至會將手指指向特別慢的手指),您會看到啓動畫面,最後出現應用UI。您可能可以在等待PPT窗口出現時將您的代碼放入循環中,然後繼續。

或建立在小的延遲,陷入任何錯誤發生,然後再試一次。

相關問題