comprobar si una impresora está fuera de línea o en línea

Post Reply
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

comprobar si una impresora está fuera de línea o en línea

Post by anserkk »

Queridos amigos,

¿Hay alguna forma de que yo pueda comprobar si una impresora está fuera de línea o en línea

Recuerdos

Anser
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Freinds,

Tengo información de la http://www.fivetechsoft.com/forums/view ... hp?t=11418 hilo

Pero sin éxito para obtener la OffLine / estado de conexión de red de una impresora matriz de puntos

Recuerdos

Anser
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Post by joseluisysturiz »

anserkk wrote:Freinds,

Tengo información de la http://www.fivetechsoft.com/forums/view ... hp?t=11418 hilo

Pero sin éxito para obtener la OffLine / estado de conexión de red de una impresora matriz de puntos

Recuerdos

Anser
Asi lo hago en una matriz d pto.

IF Empty( oPrint:hDC )
MsgStop( "La Impresora no esta Lista, enciendala"+CHR(13)+CHR(13)+;
"y/o verifique que este en ON LINE..."," ATENCION" )
RETURN NIL
ENDIF
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado José,

Gracias por la respuesta, pero el código no funcionó

Code: Select all

if Empty( oPrn:hDC )

Recuerdos

Anser
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Post by antolin »

Esto lo he sacado de un ost de este foro:

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


Sino intenta con:

LOCAL hDCP := GetPrintDefault(GetActiveWindow())

si da 0 debería ser porque no hay ninguna impresora activa

Sino a lo mejor con:

LOCAL hDCP := GetPrintDefault(GetActiveWindow())
LOCAL nvert := GetDeviceCaps(hDCP,6) <------------- largo de pagina en mm
LOCAL nHorz := GetDeviceCaps(hDcp,4) <------------- ancho de pagiina en mm

Algún valor desproporcionado a lo mejor es porque la impresora no esta activa

Yo nunca lo he intentado. Si funciona, por favor, reseñalo aqui para que lo sepamos todos.

Espero que te sirva

Un saludo
Peaaaaaso de foro...
User avatar
anserkk
Posts: 1280
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Post by anserkk »

Estimado Antolin,

Gracias por la respuesta. He intentado su solución, pero no alcanza a comprender el estado de la impresora, si la impresora está con o sin conexión

He intentado

Code: Select all

HDCP:=GetPrintDefault( GetActiveWindow() )
Estoy recibiendo números aleatorios / valores (cada vez que intento me da valor diferente). Nunca he tengo el valor 0.

He intentado el comando mientras que la impresora está encendida y también mientras la impresora está apagada. Pero cada vez que la función está volviendo diferentes valores

También he intentado

Code: Select all

nVert: = GetDeviceCaps(HDCP, 6)
nHorz: = GetDeviceCaps(HDCP, 4)
nVert y nHorz es siempre dar el mismo resultado. No cambia como HDCP.

Estoy a la espera de encontrar una solución a este problema

Saludos

Anser
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Post by karinha »

antolin wrote:Esto lo he sacado de un ost de este foro:

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


Sino intenta con:

LOCAL hDCP := GetPrintDefault(GetActiveWindow())

si da 0 debería ser porque no hay ninguna impresora activa

Sino a lo mejor con:

LOCAL hDCP := GetPrintDefault(GetActiveWindow())
LOCAL nvert := GetDeviceCaps(hDCP,6) <------------- largo de pagina en mm
LOCAL nHorz := GetDeviceCaps(hDcp,4) <------------- ancho de pagiina en mm

Algún valor desproporcionado a lo mejor es porque la impresora no esta activa

Yo nunca lo he intentado. Si funciona, por favor, reseñalo aqui para que lo sepamos todos.

Espero que te sirva

Un saludo
Antolin, esto te funciona??

Saludos.
João Santos - São Paulo - Brasil
Post Reply