另存新檔] 對話方塊顯示在後面的列印到 XPS 文件寫入器的應用程式

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:2567869
徵狀
請考慮下列情況:
  • 您可以執行 32 位元應用程式在 64 位元版本的 Windows 7。
  • 您從應用程式到 Microsoft XPS 文件寫入器 (MXDW) 印表機列印。
在這個案例中,[另新檔] 對話方塊會顯示應用程式。

此外,您可能會遇到下列徵狀︰

  • 應用程式似乎停止回應 (擱置),直到您輸入檔案名稱,或取消列印工作。
  • 正在列印的應用程式不會成為前景 (作用中) 的應用程式,[另新檔] 對話方塊關閉時。

附註當您列印至不同的印表機驅動程式顯示 [另新檔] 對話方塊或另一個強制回應對話方塊,也可能會發生這個問題。Adobe PDF 印表機的印表機驅動程式是這種類型的驅動程式。
發生的原因
印表機驅動程式會實作為正在列印的處理序上載入的動態連結程式庫 (Dll)。在 64 位元版本的 Windows 上的 64 位元 Dll,而是在 32 位元版本的 Windows 上的 32 位元 Dll,則會實作印表機驅動程式。

32 位元處理程序無法載入 64 位元 Dll。因此,64 位元版本的 Windows 支援透過 Splwow64.exe 程序的 32 位元處理序的列印。Splwow64.exe 是 64 位元的程序,可以載入 64 位元的印表機驅動程式,以及如何處理列印代表 32 位元處理程序。

當應用程式呼叫Cdc函式,若要列印到 XPS 文件寫作印表機時,XPS 文件寫作的印表機驅動程式會顯示 [另新檔] 對話方塊,以便使用者可以指定 XPS 檔案的位置與名稱。對話方塊的 [擁有者] 視窗通常是Cdc函式呼叫的執行緒的使用中視窗並且會出現對話方塊,透過使用中視窗。

32 位元應用程式會呼叫Cdc函式,在 64 位元版本的 Windows 上,Splwow64.exe 程序呼叫中 XPS 文件寫作印表機驅動程式,代表 32 位元應用程式。在這個案例中,[另新檔] 對話方塊是未擁有的因為 Splwow64.exe 程序中的執行緒並沒有使用中的視窗。正在列印,因為 Splwow64.exe 程序並沒有設定前景視窗的權限的應用程式後,可能會出現的對話方塊。此外,因為對話方塊是未擁有的呼叫Cdc函式的應用程式不一定會變成前景應用程式的對話方塊關閉時。

Cdc呼叫沒有傳回直到對話方塊關閉後,讓應用程式似乎停止回應。

如果它由 Splwow64.exe 程序,[另新檔] 對話方塊就會有它自己在 Windows 檔案總管] 工作列按鈕。這是因為對話方塊是未擁有。Splwow64.exe 程序無法設定前景視窗時,也會閃爍工作列按鈕。
其他可行方案
若要解決這個問題,您可以透過其工作列按鈕來存取 [另新檔] 對話方塊。或者,您可以按 Alt + Tab 鍵將焦點切換到對話方塊。
其他相關資訊
軟體開發人員可以避免這個問題,在他們的 32 位元應用程式,讓使用者在 XPS 文件寫作印表機或 Adobe PDF 印表機正在列印時,偵測到這些應用程式。呼叫Cdc函式時,應用程式接著會指定檔案的完整路徑在DOCINFO.lpszOutput結構成員。印表機驅動程式會使用指定的檔案,而不提示使用者輸入的檔案。

本文將所述之產品製造協力廠商均與 Microsoft 無關。Microsoft 不對這些產品之其他相關效能或可靠性作出任何擔保或默示。

警告:本文為自動翻譯

內容

文章識別碼:2567869 - 最後檢閱時間:08/25/2016 19:53:00 - 修訂: 3.0

  • kbmt KB2567869 KbMtzh
意見反應