Caixa de diálogo Salvar como será exibida atrás do aplicativo que está sendo impresso no XPS Document Writer

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 2567869
Sintomas
Considere o seguinte cenário:
  • Você executa um aplicativo de 32 bits em uma versão de 64 bits do Windows 7.
  • Imprimir a partir do aplicativo em uma impressora do Microsoft XPS Document Writer (MXDW).
Nesse cenário, a caixa de diálogo Salvar comoé exibida por trás do aplicativo.

Além disso, você pode enfrentar os seguintes sintomas:

  • O aplicativo parece parar de responder (travar) até que você digite um nome de arquivo ou cancelar a tarefa de impressão.
  • O aplicativo que está sendo impresso não se torna o aplicativo de primeiro plano (ativo) quando a caixa de diálogo Salvar como é fechada.

Observação: Esse problema também pode ocorrer quando você imprimir em uma impressora diferente cujo driver exibe a caixa de diálogoSalvar comoou outra caixa de diálogo modal. O driver de impressora para a impressora Adobe PDF é o tipo de driver.
Causa
Drivers de impressora são implementados como bibliotecas de vínculo dinâmico (DLLs) que são carregadas em um processo que está sendo impresso. Drivers de impressora são implementados como DLLs de 64 bits em versões de 64 bits do Windows e DLLs de 32 bits em versões de 32 bits do Windows.

Um processo de 32 bits não pode carregar DLLs de 64 bits. Portanto, as versões de 64 bits do Windows suporte à impressão em processos de 32 bits através do processo de Splwow64.exe. Splwow64.exe é um processo de 64 bits que possa carregar os drivers de impressora de 64 bits e que lida com a impressão em nome de processos de 32 bits.

Quando um aplicativo chama a função StartDoc para imprimir na impressora XPS Document Writer, o driver de impressora do XPS Document Writer exibe uma caixa de diálogo Salvar como , para que os usuários podem especificar o nome e o local do arquivo XPS. A janela do proprietário da caixa de diálogo normalmente é a janela ativa do thread que está chamando a função StartDoc e a caixa de diálogo aparecerá sobre a janela ativa.

Quando um aplicativo de 32 bits chama a função StartDoc em uma versão de 64 bits do Windows, o processo de Splwow64.exe chama o driver de impressora do XPS Document Writer em nome do aplicativo de 32 bits. Nesse cenário, a caixa de diálogo Salvar como é proprietário porque o thread no processo de Splwow64.exe não tem uma janela ativa. A caixa de diálogo pode aparecer por trás do aplicativo que está sendo impresso porque o processo de Splwow64.exe não tem permissão para definir a janela de primeiro plano. Além disso, como a caixa de diálogo é proprietário, o aplicativo que os chamou a função StartDoc pode não se tornar o aplicativo de primeiro plano quando a caixa de diálogo é fechada.

A chamada StartDoc não retorna até que a caixa de diálogo é fechada, portanto, o aplicativo pode parecer parar de responder.

A caixa de diálogo Salvar como tem seu próprio botão na barra de tarefas do Windows Explorer se ele é criado pelo processo de Splwow64.exe. Isso ocorre porque a caixa de diálogo é proprietário. O botão da barra de tarefas também pisca quando o processo de Splwow64.exe não é possível definir a janela de primeiro plano.
Como Contornar
Para contornar esse problema, você pode acessar a caixa de diálogo Salvar como por meio de seu botão da barra de tarefas. Ou, você pode pressionar Alt + Tab para alternar o foco para a caixa de diálogo.
Mais Informações
Os desenvolvedores de software podem evitar esse problema em seus aplicativos de 32 bits, fazendo com que esses aplicativos detectar quando o usuário está imprimindo na impressora XPS Document Writer ou para a impressora Adobe PDF. O aplicativo especifica o caminho completo para um arquivo no membro de estrutura DOCINFO.lpszOutput ao chamar a função StartDoc . O driver de impressora usará o arquivo especificado em vez de solicitar ao usuário um arquivo.

Os produtos de terceiros descritos neste artigo são fabricados por empresas que são independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 2567869 - Última Revisão: 08/27/2016 01:57:00 - Revisão: 2.0

  • kbmt KB2567869 KbMtpt
Comentários