2009-12-10 29 views
2

我正在使用Microsoft XPS Document Writer驅動程序打印報告的應用程序。如果用戶試圖覆蓋已打開的文件,驅動程序會彈出一個錯誤對話框,用戶無權保存。但是,在一臺QA的機器上,彈出對話框從不顯示。我希望應用程序彈出自己的錯誤對話框,但只有當驅動程序的錯誤對話框沒有彈出時纔會彈出。如何檢測驅動程序的錯誤對話框是否彈出?在C#.Net中,如何檢測對話框是否顯示?

回答

1

不要讓錯誤傳播那麼遠嗎?

詢問文件的名稱,檢測它是否存在,顯示自己的錯誤,將文檔傳遞給打印機。

+0

文件提示已經在Microsoft XPS Document驅動程序中完成,因此我無法手動提示輸入文件並將其傳入。 – ATDev 2009-12-10 17:42:55

1

我不認爲這是你可以100%正確的。除了一些你不知道的API之外,判斷對話框出現的唯一方法是屏幕抓取。也就是說,查看活動的一組窗口,看看是否有標題/消息指出彈出的錯誤對話框。

雖然這種方法有幾個問題。首先是它產生誤報。你可能會被類似的名字欺騙。

也不能保證你的代碼會在用戶關閉對話框之前運行。因此,您最終可以決定對話在實際上沒有出現的情況下顯示。

相關問題