Das Dialogfeld Speichern unter wird hinter der Anwendung angezeigt, die im XPS-Dokumentwriter gedruckt wird.

Dieser Artikel hilft Ihnen bei der Behebung eines Problems, bei dem das Dialogfeld Speichern unter hinter der App verborgen ist, die auf einem XPS Document Writer-Drucker gedruckt wird und die Anwendung nicht mehr reagiert.

Ursprüngliche Produktversion: XPS Document Writer
Ursprüngliche KB-Nummer: 2567869

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie führen eine 32-Bit-Anwendung unter einer 64-Bit-Version von Windows 7 aus.
  • Sie drucken aus der Anwendung auf einem Microsoft XPS Document Writer (MXDW)-Drucker. In diesem Szenario wird das Dialogfeld Speichern unter hinter der Anwendung angezeigt.

Darüber hinaus können die folgenden Symptome auftreten:

  • Die Anwendung reagiert anscheinend nicht mehr (hängt), bis Sie einen Dateinamen eingeben oder den Druckvorgang abbrechen.
  • Die Druckanwendung wird nicht zur (aktiven) Vordergrundanwendung, wenn das Dialogfeld Speichern unter geschlossen wird.

Hinweis

Dieses Problem kann auch auftreten, wenn Sie auf einem anderen Drucker drucken, dessen Treiber das Dialogfeld Speichern unter oder ein anderes modales Dialogfeld anzeigt. Der Druckertreiber für den Adobe PDF-Drucker ist dieser Treibertyp.

Ursache

Druckertreiber werden als Dynamic Link Libraries (DLLs) implementiert, die in einen Druckprozess geladen werden. Druckertreiber werden als 64-Bit-DLLs unter 64-Bit-Versionen von Windows und als 32-Bit-DLLs unter 32-Bit-Versionen von Windows implementiert.

Ein 32-Bit-Prozess kann keine 64-Bit-DLLs laden. Daher unterstützen 64-Bit-Versionen von Windows das Drucken von 32-Bit-Prozessen über den Splwow64.exe Prozess. Splwow64.exe ist ein 64-Bit-Prozess, der 64-Bit-Druckertreiber laden kann und das Drucken für 32-Bit-Prozesse übernimmt.

Wenn eine Anwendung die StartDoc Funktion aufruft, um auf dem XPS Document Writer-Drucker zu drucken, zeigt der XPS Document Writer-Druckertreiber ein Dialogfeld Speichern unter an, damit Benutzer den Namen und speicherort der XPS-Datei angeben können. Das Besitzerfenster des Dialogfelds ist in der Regel das aktive Fenster des Threads, der die StartDoc Funktion aufruft, und das Dialogfeld wird über dem aktiven Fenster angezeigt.

Wenn eine 32-Bit-Anwendung die StartDoc Funktion unter einer 64-Bit-Version von Windows aufruft, ruft der Splwow64.exe Prozess den XPS Document Writer-Druckertreiber für die 32-Bit-Anwendung auf. In diesem Szenario ist das Dialogfeld Speichern unter nicht vorhanden, da der Thread im Splwow64.exe Prozess kein aktives Fenster aufweist. Das Dialogfeld wird möglicherweise hinter der Druckanwendung angezeigt, da der Splwow64.exe Prozess nicht über die Berechtigung zum Festlegen des Vordergrundfensters verfügt. Da der Dialog nicht mehr vorhanden ist, wird die Anwendung, die die StartDoc Funktion aufgerufen hat, möglicherweise nicht zur Vordergrundanwendung, wenn der Dialog geschlossen wird.

Der StartDoc Aufruf wird erst zurückgegeben, wenn das Dialogfeld geschlossen wurde, sodass die Anwendung möglicherweise nicht mehr reagiert.

Das Dialogfeld Speichern unter verfügt über eine eigene Schaltfläche auf der Windows Explorer Taskleiste, wenn es vom Splwow64.exe-Prozess erstellt wurde. Dies liegt daran, dass das Dialogfeld nicht vorhanden ist. Die Taskleistenschaltfläche blinkt auch, wenn der Splwow64.exe Prozess das Vordergrundfenster nicht festlegen kann.

Problemumgehung

Um dieses Problem zu umgehen, können Sie über seine Taskleistenschaltfläche auf das Dialogfeld Speichern unter zugreifen. Alternativ können Sie ALT+TAB drücken, um den Fokus auf das Dialogfeld zu wechseln.

Weitere Informationen

Softwareentwickler können dieses Problem in ihren 32-Bit-Anwendungen vermeiden, indem diese Anwendungen erkennen lassen, wann der Benutzer auf dem XPS Document Writer-Drucker oder auf dem Adobe PDF-Drucker druckt. Die Anwendung gibt dann beim Aufrufen der Funktion den vollständigen Pfad zu einer Datei im DOCINFO.lpszOutput Strukturmember an StartDoc . Der Druckertreiber verwendet die angegebene Datei, anstatt den Benutzer zur Eingabe einer Datei aufzufordern.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.