La Web del Programador: Comunidad de Programadores
 
    Pregunta:  41500 - OBTENER EL ESTADO DE LA IMPRESORA DESDE TURBO C++ 3.0
Autor:  Sebastian Castillo
Hola, tengo Turbo C++ 3.0 y con el he desarrollado unas aplicaciones en las cuales se imprimen una serie de reportes, pero necesito saber si me pueden ayudar, en conocer el estado de la impresora: On Line, Sin Papel, Apagada, etc, y si es posible, como hacer que avance una hoja hasta el final aunque no se haya impreso completamente. Estas aplicaciones corren bajo Windows 9x/Me/Nt/2000. De antemano Muchisimas Gracias, desde hace tiempo que estoy tratando de averiguar si es poible desde turbo C++ 3.0 conocer esta información antes de que se genere un mensae de error. Ya que estos me gustaría manejarlos yo mismo. Muchas Gracias

  Respuesta:  john jairo gonzalez rodriguez
Amigo:

Esta WEB me ha ayudado mucho y por primera vez tengo el honor y el deber de ayudar a alguien que lo necesita como tú.
Te comento que tuve que investigar mucho para averiguar lo mismo que estas preguntando y te digo que es más fácil de lo que parece.
Existe una librería llamada BIOS.H en donde se encuentra una función llamada biosprint(_PRINTER_STATUS,0,0). Escrita así obtendras cada esado de la impresora. Esta funcion devuelve un valor entero a una variable. El valor de esa variable es el estado de la impresora.
Prueba los valores de esa variable con el visor de valores de variables
Ctrl+F7 y F7 con las distintos de la impresora: Apagada, sin papel, prendia pero no en línea y totalmente lista y verás la diferencia de los valores.
Si tienes alguna duda, por favor escríbeme y yo con mucho gusto te enviaré un ejemplo que funciona perfectamene.
también puedes ver en la ayuda del IDE en index para buscar la explicación de la función.

Nota: Si algien más necesita el ejemplo no duden en escribirme.

Hasta pronto...

  Respuesta:  Ricardo Gutiérrez Madrid
Estimado amigo...

Yo hice una investigación acerca de como manejar el puerto paralelo para enviar y recibir datos en c++. Se relaciona con lo que quieres saber de la siguiente manera:

El puerto paralelo (25 pines) se encuentra generalmente en la dirección 0x378, 0x278 o 0x3BC.

Hay 2 funciones en c que sirven para poder enviar o recibir bits en c, las cuales son outport e inport o sus equivalentes outportb e inportb, las cuales estan en la cabecera <dos.h>.

De acuerdo a la polaridad que tengan los bits en los pines ya sea alto o bajo (high o low) se hace la interpretación, por ejemplo, si el pin 12 devuelve un 1, es que no hay papel.

Me gustaria ayudarte a hacer tu aplicación y compartir contigo los archivos que consegui en mi investigación. Por favor ponte en contacto conmigo a traves de correo electronico o msn messenger para platicar sobre el tema. Mi correo es [email protected] o aqui te van unas web's pa que aprendas un poco mas sobre el tema:

http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm#cuatro
http://megatronica.cjb.net

Tienes que aprender un poquitin de sistemas digitales para comprender bien el tema, espero que te haya sido util la información y si gustas yo te ayudo.

saludos.

ricksoft