Clipper/FiveWin - Problema con TDosprn

 
Vista:

Problema con TDosprn

Publicado por lorenzo (180 intervenciones) el 22/02/2006 08:29:09
Hola compañeros....

tengo una duda respecto a la clase TDosprn....... me funciona perfectamente, pero cuando intento imprimir algo estando la impresora apagada no lo reconoce y el EXE se queda bloqueado.

Intenté con

oPrn:=TDosPrn():New(IMPREPUE) // IMPREPUE = nombre del puerto seleccionado.
if Empty( oPrn:hDC )
msgstop(' ¡ Verifique impresora... !! ')
return
endif
oPrn:say(0,0,'HOLA, ESTO ES UNA PRUEBA.')
oPrn:End()

¿ Que comando verifica si la impresora está operativa antes de imprimir ?
Mil gracias de nuevo
LORENZO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con TDosprn

Publicado por Polo (20 intervenciones) el 22/02/2006 12:05:49
Para verificar si tenés un error de comunicacion con la impresora el oPrn:hDC tiene que darte un valor menor a 0. Verifica eso en tu rutina como lo estas haciendo pero cambiando el Empty por if oPrn:hDC<0...

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con TDosprn

Publicado por lorenzo (180 intervenciones) el 23/02/2006 13:14:35
Estimado Polo,

De antemano mil gracias por tu sugerencia, pero probé y el resultado final es el mismo, es decir, el EXE se queda bloqueado hasta que no está ON-LINE la impresora.

Tiene que haber alguna solución, no?

Saludos, LORENZO
desde Cadiz, España
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con TDosprn

Publicado por José Mª (26 intervenciones) el 23/02/2006 17:31:54
¿Ha probado, la función ISPRINTER()?

DO WHILE .NOT. ISPRINTER()
.
.
.
ENDDO

Saludos, José Mª
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con TDosprn

Publicado por Gabriel Pascual (913 intervenciones) el 24/02/2006 02:58:03
Pues va a ser que no colegas.

No es la forma correcta de verficar el estado de la impresora y menos utilizando un programa en Windows.

En el foro de FiveWin hay un archivo llamado PRNSTAT.OBJ que tienes que linkear para verificar el estado de la impresora.

Este archivo contiene la funcion PrnStatus() te devuelve .T. o .F. dependiendo si la impresora esta activa o no.

Ejemplo:

DO WHILE ! PrnStatus()
lRetry := MsgYesNo("Impresora fuera de linea, ¿ desea reintentar ?",;
"Error de Impresora")
IF ! lRetry
RETURN
ENDIF
ENDDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con TDosprn

Publicado por lorenzo (180 intervenciones) el 28/02/2006 17:49:17
Estimado Gabriel.

No localizo el archivo PRNSTAT.OBJ

¿ Me lo podrías enviar por email, por favor ?

de nuevo, Mil gracias.
LORENZO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar