Problemas con impresora

Tengo la siguiente consulta en PowerBuilder cuando uno selecciona una impresora no valida, por ejemplo cuando uno compra una impresora nueva y reemplaza la vieja, generalmente el link de la impresora vieja queda en la carpeta de impresoras de windows. El problema se presenta si una aplicación realizada en powerbuilder que permite la selección de impresora, si uno selecciona una impresora no valida powerbuilder se muere, existe alguna función o método para controlar este error.

1 respuesta

Respuesta
1
No intento sonar repetitivo con este tema, pero recuerda que el control de impresoras por un lado lo tiene windows, y por el otro cualquier driver que este instalado en un cliente, inmediatamente windows asume que esta disponible.
Es posible que power builder sea abortado por que el driver que que intentas utilizar, es de w98 y lo estas tratando de ejecutar bajo una plataforma distinta y más moderna.
Por otro lado power builder no tiene una función que verifique que la impresora este disponible físicamente, sin embargo igual si tratas de verificar la existencia física de la impresora por medio de windows, igual te va a dar el mismo error.
Por ultimo, aun no he entendido porque tienes un driver que no funciona en tu maquina, que esta descontinuado e incluso que la maquina ya no esta conectada.
Si este es vital para tu aplicación me gustaría entender un poco más al respecto para darte una nueva solución.
Por cierto, esta pregunta ya la había contestado con el contenido actual, pero no desaparece de mi buzón, por lo que si es duplicado, esto se encuentra fuera de mis controles.
En nuestro sector de trabajo teníamos una maquina con win98 que compartía la impresora en red, luego esa maquina fue formateada y se le instalo windows 2000 por lo tanto el driver es distinto.
Al realizar las pruebas de una aplicación realizada en PowerBuilder desde una pc que hace uso de la impresora en red, si seleccionamos la impresora que hace reerencia a la instalada en win2000 todo bien, pero si seleccionamos la que hace referencia a la de win98 la aplicación se muere.
Como puedo hacer para enviar un mensaje de que la impresora no esta instalada.
Creo entender con tu planteamiento que lo que sucede es que una aplicación es abortada o queda bloqueada, causado por que un driver o manejador de una impresora se encuentra disponible en el sistema que ocupa el servidor o cliente, y que actualmente ya no existe disponibilidad de hardware para ese dispositivo.
El problema en este caso no corresponde a power builder, o visual basic o cualquier otro lenguaje de programación que pueda permitir la impresión de datos.
El problema esta físicamente en el sistema operativo.
Recuerda que power builder cuando imprime no tiene un manejador propio de impresión, igualmente no lo tiene visual basic, ni fox, ni delphi, pues eso serie redundar en la implementación de herramientas, el éxito de estos lenguajes es que utilizan los recursos de windows, (en realidad esa la idea matriz), por lo que cuando power builder o cualquier herramienta envía una impresión, lo que hace es simplemente enviar al manejador central de impresiones, para que este distribuya dicha impresión en la forma que el crea conveniente,
Por supuesto existen medios como timeouts, devolución de respuestas, etc. tal y como puedes detectar por medio de un puerto que una impresora no tiene papel.
Pero esto es una situación totalmente distinta.
Por lo que te expongo y perdona por hacer tanta historia al respecto.
Lo más elemental y directo que se me ocurre para evitar el problema causado por tu planteamiento es simplemente antes de enviar a imprimir cualquier cosa, enviar una señal, preguntando por la disponibilidad de la impresora en cuestión, esta señal deberá tener como consecuencia una respuesta, y dependiendo de esta respuesta imprimes o no.
Aunque por mi experiencia, en mis aplicaciones, cuando envío a imprimir, dichas impresiones son descargadas en el manejador y este decide como y cuando imprimir, una vez terminada la entrega de la impresión por power builder, es liberado el proceso y la aplicación continua sin problema.
Sin embargo el problema es que el resultado de impresión no sea efectuado. Por una u otra razón, entonces los errores o mensajes de error, son enviados por el propio sistema, por medio de cajas de diálogos. Pero propios del sistema operativo.
Sin embargo me gustaría saber un poco más de tu problema con una situación más concreta.
Es posible que por medio de apis, puedas determinar las impresoras disponibles, (aunque no estoy seguro si el concepto disponibles para windows, es conectada y lista, o solo instalada, creo que la segunda suena más lógica)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas