Page 1 of 1

network print status

Posted: Tue Nov 18, 2008 7:14 pm
by MGA
Tem alguma maneira de saber o status: on-line/off-line de uma impressora na rede?

Obrigado

Posted: Thu Nov 20, 2008 6:25 am
by anserkk
Estimado SGS

También estoy buscando una solución para averiguar el estado de la impresora de red. Hasta hoy no he encontrado una solución
Por favor, revise mis entradas

http://www.fivetechsoft.com/forums/view ... hp?p=69057

http://www.fivetechsoft.com/forums/view ... hp?p=69396

Gracias

Anser

Posted: Thu Nov 20, 2008 11:43 am
by MGA
Gracias Anser,

pelo que observei não será facil a solução deste problema.


:cry:

Posted: Thu Nov 20, 2008 2:19 pm
by Rochinha
Execute el test:

Codigo:

Code: Select all

#include "FiveWin.ch"

Function main()
   aArray := GetPrinters()
   for i = 1 to len(aArray)
       cPrinterName := substr( aArray[i], 1, at( ",", aArray[i])-1 )
       ? "A impressora " + cPrinterName, IsPrint( alltrim( cPrinterName ) )
   next
   Return nil

Function GetPrinters()
   Local aPrinter := {}
   Local cAllEntries
   Local cEntry
   Local nStart
   Local cName
   Local cPrn
   Local cPort
   Local nJ 
   cAllEntries := STRTRAN( GetProfString( "Devices" ), Chr( 0 ), CRLF )
   For nStart := 1 To MlCount( cAllEntries )
       cName := MemoLine( cAllEntries,,nStart)
       cEntry := GetProfString( "Devices",cName,"")
       nJ := 2
       Do While ! Empty(cPort := StrToken(cEntry,nJ++,","))
          Aadd(aPrinter,Trim(cName)+" , "+Trim(cPort))
       EndDo
   Next
   Return(aPrinter)

function IsPrint( QuePrinter )
   LOCAL nStatus
   DEFAULT QuePrinter := "LPT1:"
   nStatus := PrnStatus( QuePrinter )
   if     nStatus <        1 ; return "Impressora 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
Link http://www.5volution.com/forum/kapiaba.zip

Posted: Thu Nov 20, 2008 4:03 pm
by MGA
Rochinha, muito obrigado por responder, mais o seu exemplo sempre retorna IMPRESSORA OK, mesmo que uma impressora na rede não esteja ligada ou não esteja sequer conectada.

O que eu e o anser precisamos, é identificar se uma impressora na rede esta on line/off line.

Mesmo assim, muito obrigado.
:(

Posted: Fri Nov 21, 2008 5:17 am
by anserkk
Estimado Rochinha,

Como dice SGS, el código proporcionado por usted siempre da el mensaje de impresora en Aceptar, incluso si la impresora está fuera de línea.

Gracias

Anser

Posted: Fri Nov 21, 2008 5:48 pm
by Armando Picon
El código se utiliza para ver si hay una impresora registrada en Win.Ini, solamente... no sirve para averiguar si está activa !!!