Clipper On Line • Ver Tópico - Rotina para saber status da impressora não funcionando

Rotina para saber status da impressora não funcionando

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Rotina para saber status da impressora não funcionando

Mensagempor porter » 23 Mai 2017 11:49

olá pessoal, com a rotina abaixo, quero que me retorne o Status de uma impressora escolhida,
não está dando erro, mas nStatus, sempre retorna 0 (zero), mesmo a impressora estando desligada e desconectada,
que teste eu poderia fazer para ver se realmente essa rotina está funcionando, vou precisar testa-la em
impressoras locais e em rede também.

Harbour 3.2.0dev modo console
Windows 7


//vcPrintOn é o nome da impressora selecionada.
local  nStatus := PrintStat(vcPrintOn)
*local nStatus := PrnStatus(vcPrintOn)
      
if nStatus > 0  // Sempre retornando 0
   Alert("Condicao da impressora: " + IsImpressora(vcPrintOn))
endif
return .t.

function IsImpressora( QuePrinter )
*****************************************
* Funcao para retornar a mesnagem de
* status da impressora
*****************************************
   LOCAL nStatus
   nStatus := PrintStat( QuePrinter )
   if     nStatus <        1 ; return "OK"
   elseif nStatus =        1 ; return "Impressora Pausada"
   elseif nStatus =        2 ; return "Impressora com Erro"
   elseif nStatus =        4 ; return "Impressora Deletando"
   elseif nStatus =        8 ; return "Impressora em Modo Bandeja"
   elseif nStatus =       16 ; return "Impressora Sem Papel"
   elseif nStatus =       32 ; return "Impressora em Modo Manual"
   elseif nStatus =       64 ; return "Impressora com Problema no Papel"
   elseif nStatus =      128 ; return "Impressora OffLine"
   elseif nStatus =      256 ; return "Impressora com IO Ativo"
   elseif nStatus =      512 ; return "Impressora Ocupada"
   elseif nStatus =     1024 ; return "Impressora Imprimindo"
   elseif nStatus =     2048 ; return "Impressora Memoria Lotada"
   elseif nStatus =     4096 ; return "Impressora Nao Instalada"
   elseif nStatus =     8192 ; return "Impressora Aguardando"
   elseif nStatus =    16384 ; return "Impressora Processando"
   elseif nStatus =    32768 ; return "Impressora Inicializando"
   elseif nStatus =    65536 ; return "Impressora em Atencao"
   elseif nStatus =   131072 ; return "Impressora Toner Baixo"
   elseif nStatus =   262144 ; return "Impressora Sem Toner"
   elseif nStatus =   524288 ; return "Impressora PAGE_PUNT"
   elseif nStatus =  1048576 ; return "Impressora Intervencao do Usuario"
   elseif nStatus =  2097152 ; return "Impressora Sem Memoria"
   elseif nStatus =  4194304 ; return "Impressora Tampa Aberta"
   elseif nStatus =  8388608 ; return "Impressora Servidor Desconhecido"
   elseif nStatus = 16777217 ; return "Impressora POWER_SAVE"
   endif
   return(nil)
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes

Rotina para saber status da impressora não funcionando

Mensagempor Jairo Maia » 24 Mai 2017 07:30

Olá porter,

Você só irá consultar o status de uma impressora se ela estiver conectada DIRETAMENTE a uma porta LPT usando a função Hb_IsPrinter(), que retorna .T. se pronta e .F. se desligada. Usando impressoras instaladas no Windows, o teste esbarra no spooler, e sempre retornará Zero.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Rotina para saber status da impressora não funcionando

Mensagempor porter » 24 Mai 2017 08:40

Olá Jairo,
Obrigado por sua atenção.
porter
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1024
Data de registro: 10 Dez 2009 15:44
Cidade/Estado: OLIMPIA-SP
Curtiu: 3 vezes
Mens.Curtidas: 23 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro