FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour comprobar si una impresora está fuera de línea o en línea
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 05, 2008 11:39 AM

Queridos amigos,

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

Recuerdos

Anser

Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 05, 2008 12:27 PM

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

Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 05, 2008 01:13 PM
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!
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
comprobar si una impresora está fuera de línea o en línea
Posted: Thu Nov 06, 2008 05:13 AM
Estimado José,

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

if Empty( oPrn:hDC )



Recuerdos

Anser
Posts: 498
Joined: Thu May 10, 2007 08:30 PM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 12, 2008 07:06 AM

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...

FWH 2007 - xHarbour - BCC55
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 12, 2008 11:25 AM
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

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

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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
comprobar si una impresora está fuera de línea o en línea
Posted: Wed Nov 12, 2008 11:34 AM
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 - Phone: +55(11)95150-7341

Continue the discussion