Caixa de diálogo ' Guardar como ' seja apresentada atrás da aplicação que está a imprimir XPS Document Writer

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 2567869
Sintomas
Considere o seguinte cenário:
  • Executar uma aplicação de 32 bits numa versão de 64 bits do Windows 7.
  • Imprimir da aplicação para uma impressora de escritor de documento XPS (MXDW) da Microsoft.
Neste cenário, é apresentada a caixa de diálogo Guardar comoatrás da aplicação.

Além disso, poderá detectar os seguintes sintomas:

  • A aplicação parece deixar de responder (bloquear) enquanto introduzir um nome de ficheiro ou cancelar a tarefa de impressão.
  • A aplicação que está a ser impresso não tornar-se a aplicação de primeiro plano (activo) quando a caixa de diálogo ' Guardar como ' está fechada.

Nota Este problema também poderá ocorrer quando imprime para outra impressora cujo controlador apresenta a caixa de diálogo 'Guardar como' ou a outra caixa de diálogo modal. O controlador de impressora para a impressora Adobe PDF é este tipo de controlador.
Causa
Controladores de impressora são implementados como bibliotecas de ligação dinâmica (DLL) que são carregadas para um processo que está a imprimir. Controladores de impressora são implementados como DLLs de 64 bits em versões de 64 bits do Windows e como DLLs de 32 bits em versões de 32 bits do Windows.

Um processo de 32 bits não é possível carregar a DLL de 64 bits. Por conseguinte, versões de 64 bits do Windows suportam a impressão a partir de processos de 32 bits através do processo de Splwow64.exe. Splwow64.exe é um processo de 64 bits que pode carregar controladores de impressora de 64 bits e que processa a impressão em nome dos processos de 32 bits.

Quando uma aplicação chama a função de StartDoc para imprimir na impressora XPS Document Writer, o controlador de impressora XPS Document Writer apresenta uma caixa de diálogo ' Guardar como ' para que os utilizadores podem especificar o nome e localização do ficheiro XPS. A janela de proprietário da caixa de diálogo, normalmente, é a janela activa do thread que está a chamar a função StartDoc e será apresentada a caixa de diálogo sobre a janela activa.

Quando uma aplicação de 32 bits chama a função de StartDoc numa versão de 64 bits do Windows, o processo de Splwow64.exe chama o controlador de impressora XPS Document Writer em favor da aplicação de 32 bits. Neste cenário, a caixa de diálogo ' Guardar como ' está sem proprietário porque o thread no processo de Splwow64.exe não tem uma janela activa. A caixa de diálogo poderá aparecer por detrás da aplicação que está a ser impresso porque o processo de Splwow64.exe não tem permissão para definir a janela de primeiro plano. Além disso, uma vez que a caixa de diálogo sem proprietário, a aplicação que chamar a função StartDoc pode não tornar-se a aplicação de primeiro plano quando a caixa de diálogo é fechada.

A chamada StartDoc não devolve até que a caixa de diálogo é dispensada, pelo que a aplicação parece deixar de responder.

A caixa de diálogo ' Guardar como ' tem um botão próprio na barra de tarefas do Explorador do Windows se é criada pelo processo de Splwow64.exe. Isto acontece porque a caixa de diálogo é sem proprietário. O botão de barra de tarefas também fica intermitente quando o processo de Splwow64.exe não é possível definir a janela de primeiro plano.
Como contornar
Para contornar este problema, pode aceder a caixa de diálogo ' Guardar como ' através do respectivo botão de barra de tarefas. Ou, pode premir Alt + Tab para mudar o foco para a caixa de diálogo.
Mais Informação
Os programadores de software podem evitar este problema nas suas aplicações de 32 bits, fazendo com que estas aplicações detectar quando o utilizador estiver a imprimir para a impressora XPS Document Writer ou para a impressora Adobe PDF. A aplicação, em seguida, especifica o caminho completo para um ficheiro do membro da estrutura de DOCINFO.lpszOutput ao chamar a função StartDoc . O controlador de impressora utilizará o ficheiro especificado em vez de pedir ao utilizador para um ficheiro.

Os produtos de outros fabricantes que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente, ao desempenho ou à fiabilidade destes 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