ID do artigo: 160129 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 4.1 Como obter o status de uma impressora e um trabalho de impressão
Nesta páginaSumárioO status de impressoras e trabalhos de impressão serão atualizados pelo Spooler Win32 durante despool de um trabalho de impressão. Em todos os outros horários, quando essa impressora não despooling e relatórios não informações de estado, a impressora é considerada pronto e ocioso. Mais InformaçõesComo referido pela API do Win32, "impressora" é composta do driver de impressora, a fila de impressão e o caminho de entrada/saída para a impressora física. O sistema operacional trata uma impressora física como simplesmente o destino de um trabalho de impressão gerada pelo e passadas para um sistema "Impressora", mencionado o restante deste artigo como uma impressora. A parte mais visível de uma impressora é uma fila de impressão. Ela é gerenciada pelo pastas impressora nas interfaces de usuário de estilo do Windows 95 ou o Gerenciador de impressão. O driver de impressora é a interface para a impressora é usada por aplicativos para criar trabalhos de impressão através da impressora DCs. O caminho de E/s para uma impressora consiste em várias camadas do código do sistema culminating com um monitor de porta. O monitor de porta é a interface para a impressora física do final de fluxo para baixo de um sistema de impressora e é responsável por transferência de dados de um trabalho de impressão em qualquer conexão existe para a impressora física. No caso do bi-direcional impressoras, o monitor de porta seria responsável para a transferência de dados e para a impressora física. Esta conexão e a impressora física, são onde ocorrem erros. É o trabalho do monitor de porta para relatar esses erros. O spooler não consulta para o estado de uma impressora física à qual uma impressora está conectada. Em vez disso, o estado de uma impressora física determina o êxito de um trabalho de impressão no momento é despooled sobre o monitor de porta. Se ocorrer algum erro nesse processo, o erro é relatado pelo monitor de porta e registrado em informações sobre o status do trabalho de impressão. O spooler, por sua vez, propaga informações de erro razoável para a fila da impressora. Conseqüentemente, um sistema de impressora relatórios não status quando a fila de impressora está vazia. Nesse estado, a impressora será considerada pronta para aceitar trabalhos de impressão. Isso é uma suposição válida mesmo se a impressora física está em um erro, como estado off-line. O sistema operacional considera a impressora pronta para aceitar trabalhos de impressão, mesmo se, por algum motivo, ele não pode concluir a entrega para a impressora física. Como uma circunstância é considerada um estado de erro no sistema operacional que deve ser tratado pelo usuário. Ele não é considerado um erro reportable para o aplicativo que é permitido para concluir o spool do trabalho de impressão com êxito. Determinando o estado de uma impressora físicaHá um premissa fundamental que deve ser verdadeira para determinar o estado de uma impressora física: o spooler deve ser tentando enviar um trabalho de impressão para a impressora física. Esta é a única vez que o estado da impressora é informado pelo monitor de porta. Além disso, as informações mais significativas podem ser reportadas nos membros de status de uma estrutura JOB_INFO para esse determinado trabalho de impressão porque alguns monitor de porta será ter definido esses valores diretamente.As estruturas JOB_INFO contém um membro de status e um membro pStatus . Os dois membros contêm informações sobre o status de um trabalho de impressão relatado pelo monitor de porta. Esses dois membros diferem em que o membro de status seja um campo de bits de estados que contém valores predeterminados, enquanto o membro pStatus é um ponteiro para uma seqüência que pode conter qualquer coisa. Esses valores são documentados pelo SDK do Win32 e o arquivo de cabeçalho WinSpool.h. O membro pStatus é definido de algumas vezes, mas não sempre, o como uma seqüência de status descritivo. O conteúdo dessa seqüência de caracteres é definido por cada monitor de porta. JOB_INFO estruturas são retornadas por duas funções de API: GetJob e EnumJobs. EnumJobs retorna uma matriz de estruturas JOB_INFO sem exigir que a referência de chamador um determinado trabalho na fila de impressora. O trabalho de impressão que está atualmente despooling (impressão) contém as informações de status. Para localizar este trabalho na matriz, pesquise a matriz de estruturas JOB_INFO para localizar o trabalho de impressão cujo status membro tem o conjunto JOB_STATUS_PRINTING bit. Um método mais fácil de determinar o status da impressora é examinar o membro de status de uma estrutura PRINTER_INFO . Essa estrutura é retornada pela função GetPrinter . Há uma desvantagem dessa abordagem em que não haja nenhum membro de seqüência de caracteres pStatus em uma estrutura PRINTER_INFO que pode fornecer informações de estado mais detalhado ou abrangentes. No entanto, há uma vantagem de modo que um monitor de porta pode definida bits de status da estrutura PRINTER_INFO a alguns de impressora mais extenso. No entanto, observe que o monitor de porta padrão para o Windows não geralmente define mais do que o bit PRINTER_STATUS_ERROR de membro de status da impressora. Observe que os membros de status de um conjunto de estruturas podem conter informações de estado que não é estritamente relacionadas a impressora física. Por exemplo, o membro de status de estruturas PRINTER_INFO pode ser definido com PRINTER_STATUS_PAUSED ou PRINTER_STATUS_PENDING_DELETION , que são estritamente relevantes para a fila de impressão. Além disso, o membro de status da estrutura JOB_INFO pode conter valores de estado para JOB_STATUS_PAUSED ou JOB_STATUS_DELETING , que são relevantes somente para esse trabalho de impressão específico. Além disso, observe que os trabalhos de impressão podem acumular em uma fila de impressão após eles têm despooled e devem ser deixados com um estado de JOB_STATUS_PRINTED . Cada uma dessas funções requer um identificador para uma impressora para identificar a impressora desejada. Esse identificador é obtido da função OpenPrinter , que aceita uma cadeia de caracteres que contém o nome da impressora. Esse nome pode ser o nome local da impressora ou um UNC compartilhar nome em uma impressora de rede. O código de exemplo a seguir demonstra como chamar a função EnumJobs adequadamente para recuperar JOB_INFO estruturas e como chamar a função GetPrinter para recuperar PRINTER_INFO estruturas: Código de exemploReferênciasPara informações adicionais sobre instruções gerais na chamada Win32 Spooler funções, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft: 158828
(http://support.microsoft.com/kb/158828/
)
Como a enumeração de chamada Wind32 Spooler APIs corretamente A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 160129
(http://support.microsoft.com/kb/160129/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções deste artigo
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar para o início