Tem alguma maneira de saber o status: on-line/off-line de uma impressora na rede?
Obrigado
Tem alguma maneira de saber o status: on-line/off-line de uma impressora na rede?
Obrigado
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
Gracias Anser,
pelo que observei não será facil a solução deste problema.
![]()
#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"
endifRochinha, 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.
![]()
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
El código se utiliza para ver si hay una impresora registrada en Win.Ini, solamente... no sirve para averiguar si está activa !!!