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

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

Postby anserkk » 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
User avatar
anserkk
 
Posts: 1333
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Postby anserkk » 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
User avatar
anserkk
 
Posts: 1333
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Postby joseluisysturiz » Wed Nov 05, 2008 1: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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby anserkk » Thu Nov 06, 2008 5:13 am

Estimado José,

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

Code: Select all  Expand view  RUN
if Empty( oPrn:hDC )



Recuerdos

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

Postby antolin » Wed Nov 12, 2008 7: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
antolin
 
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Postby anserkk » 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

Code: Select all  Expand view  RUN
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  Expand view  RUN
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
anserkk
 
Posts: 1333
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Postby karinha » 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
User avatar
karinha
 
Posts: 7831
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 83 guests