Sigo con la aplicación de ticket y necesito controlar el estado de la
impresora antes de mandar a imprimir, ya que si no se me queda colgado el
programa al enviar la impresión, ademas me gustaria avisar si falta papel o
cualquier otra incidencia que pudiera tener la impresora.
He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo que
necesito, pero no consigo que funcione.
En la ayuda indica que debemos de utilizarla asi.
lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
pero al compilar me da un error
Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
Supongo que intenta decirme que no tiene ni idea de que es eso que le he
escrito, para mi novato entender es una constante, pero...
¿Tengo que declaralas antes? y si es asi ¿Donde?
Un saludo
Pedro Amaro
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Otra de Novato
-
- Mensajes: 157
- Registrado: Jue May 18, 2006 5:10 pm
Otra de Novato
Me huele a que tienes que indicar algun fichero ch que contenga valor
para PRINTER_STATUS_PAPER_OUT
para PRINTER_STATUS_PAPER_OUT
-
- Mensajes: 157
- Registrado: Jue May 18, 2006 5:10 pm
Otra de Novato
He buscado en todos los ficheros ch y no he encontrado nada, pero he
tropezado con winspool.h en BCC55Include que contiene la definición de la
constante.
¿Es ese el fichero que tengo que incluir?
Y si es ¿Donde lo incluyo?
Un saludo
Pedro Amaro
tropezado con winspool.h en BCC55Include que contiene la definición de la
constante.
¿Es ese el fichero que tengo que incluir?
Y si es ¿Donde lo incluyo?
Un saludo
Pedro Amaro
- ignacio
- Site Admin
- Mensajes: 9459
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Otra de Novato
Pedro,
Me temo que está mal la documentación. La propiedad es realmente nStatus,
pero compruebo que sólo retorna los valores que indica en la documentación
para Windows 95 y para Windows NT o superiores sólo son válidos los
siguientes valores:
PRINTER_STATUS_PAUSED
PRINTER_STATUS_PENDING_DELETION
He estado investigando en el API la forma de conseguir dicha información de
la impresora, pero sin éxito. Seguiré buscando y te comento algo cuanto
antes.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Sigo con la aplicación de ticket y necesito controlar el estado de la
> impresora antes de mandar a imprimir, ya que si no se me queda colgado el
> programa al enviar la impresión, ademas me gustaria avisar si falta papel
> o cualquier otra incidencia que pudiera tener la impresora.
>
> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo que
> necesito, pero no consigo que funcione.
>
> En la ayuda indica que debemos de utilizarla asi.
>
> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>
> pero al compilar me da un error
>
> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>
> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
> escrito, para mi novato entender es una constante, pero...
>
> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>
> Un saludo
> Pedro Amaro
>
>
Me temo que está mal la documentación. La propiedad es realmente nStatus,
pero compruebo que sólo retorna los valores que indica en la documentación
para Windows 95 y para Windows NT o superiores sólo son válidos los
siguientes valores:
PRINTER_STATUS_PAUSED
PRINTER_STATUS_PENDING_DELETION
He estado investigando en el API la forma de conseguir dicha información de
la impresora, pero sin éxito. Seguiré buscando y te comento algo cuanto
antes.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Sigo con la aplicación de ticket y necesito controlar el estado de la
> impresora antes de mandar a imprimir, ya que si no se me queda colgado el
> programa al enviar la impresión, ademas me gustaria avisar si falta papel
> o cualquier otra incidencia que pudiera tener la impresora.
>
> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo que
> necesito, pero no consigo que funcione.
>
> En la ayuda indica que debemos de utilizarla asi.
>
> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>
> pero al compilar me da un error
>
> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>
> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
> escrito, para mi novato entender es una constante, pero...
>
> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>
> Un saludo
> Pedro Amaro
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9459
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Otra de Novato
Pedro,
Ya he visto como se saca dicha información con la función EnumJobs(), pero
tiene bastante trabajo. Intentarmos tenerlo para la siguiente versión de
Xailer.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:46bc2640$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> Me temo que está mal la documentación. La propiedad es realmente nStatus,
> pero compruebo que sólo retorna los valores que indica en la documentación
> para Windows 95 y para Windows NT o superiores sólo son válidos los
> siguientes valores:
>
> PRINTER_STATUS_PAUSED
> PRINTER_STATUS_PENDING_DELETION
>
> He estado investigando en el API la forma de conseguir dicha información
> de la impresora, pero sin éxito. Seguiré buscando y te comento algo cuanto
> antes.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> Email: iozuniga@ozs.com
> "Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
> news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Sigo con la aplicación de ticket y necesito controlar el estado de la
>> impresora antes de mandar a imprimir, ya que si no se me queda colgado el
>> programa al enviar la impresión, ademas me gustaria avisar si falta papel
>> o cualquier otra incidencia que pudiera tener la impresora.
>>
>> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo que
>> necesito, pero no consigo que funcione.
>>
>> En la ayuda indica que debemos de utilizarla asi.
>>
>> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>>
>> pero al compilar me da un error
>>
>> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>>
>> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
>> escrito, para mi novato entender es una constante, pero...
>>
>> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>>
>> Un saludo
>> Pedro Amaro
>>
>>
>
>
Ya he visto como se saca dicha información con la función EnumJobs(), pero
tiene bastante trabajo. Intentarmos tenerlo para la siguiente versión de
Xailer.
Un saludo,
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:46bc2640$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> Me temo que está mal la documentación. La propiedad es realmente nStatus,
> pero compruebo que sólo retorna los valores que indica en la documentación
> para Windows 95 y para Windows NT o superiores sólo son válidos los
> siguientes valores:
>
> PRINTER_STATUS_PAUSED
> PRINTER_STATUS_PENDING_DELETION
>
> He estado investigando en el API la forma de conseguir dicha información
> de la impresora, pero sin éxito. Seguiré buscando y te comento algo cuanto
> antes.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> Email: iozuniga@ozs.com
> "Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
> news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Sigo con la aplicación de ticket y necesito controlar el estado de la
>> impresora antes de mandar a imprimir, ya que si no se me queda colgado el
>> programa al enviar la impresión, ademas me gustaria avisar si falta papel
>> o cualquier otra incidencia que pudiera tener la impresora.
>>
>> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo que
>> necesito, pero no consigo que funcione.
>>
>> En la ayuda indica que debemos de utilizarla asi.
>>
>> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>>
>> pero al compilar me da un error
>>
>> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>>
>> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
>> escrito, para mi novato entender es una constante, pero...
>>
>> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>>
>> Un saludo
>> Pedro Amaro
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9459
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Otra de Novato
Pedro,
He estado investigando un poquito más sobre el tema, y compruebo que hay muy
poco que hacer. Te recomiendo que le eches un vistazo al siguiente
artículo:
http://support.microsoft.com/kb/160129/en-us
En el se dice textualmente:
" The status of printers and print jobs are updated by the Win32 Spooler
during the despool of a print job. At all other times, when that printer is
not despooling and reports no state information, the printer is considered
to be ready and idle."
Que indica claramente que para Windows una impresora siempre está LISTA Y EN
ESPERA hasta que no se le manda un trabajo de impresión, y cuando se le
manda un trabajo de impresión o tiene trabajos pendientes en la cola es el
único momento cuando se puede interrogar sobre su estado, lo cual me imagino
a ti no te va a servir de mucho.
Tengo que pensar si merece la pena incluir el nuevo código o no, y en caso
afirmativo si hacer un método ad-hoc para ello o utilizar la propiedad
nState, pero como te comento, sólo te funcionará cuando haya algún trabajo
en la cola de impresión
(
Un saludo
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:[email=46bc2bee@ozsrv2.ozlan.local...]46bc2bee@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> Ya he visto como se saca dicha información con la función EnumJobs(), pero
> tiene bastante trabajo. Intentarmos tenerlo para la siguiente versión de
> Xailer.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> Email: iozuniga@ozs.com
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:46bc2640$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Pedro,
>>
>> Me temo que está mal la documentación. La propiedad es realmente nStatus,
>> pero compruebo que sólo retorna los valores que indica en la
>> documentación para Windows 95 y para Windows NT o superiores sólo son
>> válidos los siguientes valores:
>>
>> PRINTER_STATUS_PAUSED
>> PRINTER_STATUS_PENDING_DELETION
>>
>> He estado investigando en el API la forma de conseguir dicha información
>> de la impresora, pero sin éxito. Seguiré buscando y te comento algo
>> cuanto antes.
>>
>> Un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> Email: iozuniga@ozs.com
>> "Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
>> news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Sigo con la aplicación de ticket y necesito controlar el estado de la
>>> impresora antes de mandar a imprimir, ya que si no se me queda colgado
>>> el programa al enviar la impresión, ademas me gustaria avisar si falta
>>> papel o cualquier otra incidencia que pudiera tener la impresora.
>>>
>>> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo
>>> que necesito, pero no consigo que funcione.
>>>
>>> En la ayuda indica que debemos de utilizarla asi.
>>>
>>> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>>>
>>> pero al compilar me da un error
>>>
>>> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>>>
>>> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
>>> escrito, para mi novato entender es una constante, pero...
>>>
>>> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>>>
>>> Un saludo
>>> Pedro Amaro
>>>
>>>
>>
>>
>
>
He estado investigando un poquito más sobre el tema, y compruebo que hay muy
poco que hacer. Te recomiendo que le eches un vistazo al siguiente
artículo:
http://support.microsoft.com/kb/160129/en-us
En el se dice textualmente:
" The status of printers and print jobs are updated by the Win32 Spooler
during the despool of a print job. At all other times, when that printer is
not despooling and reports no state information, the printer is considered
to be ready and idle."
Que indica claramente que para Windows una impresora siempre está LISTA Y EN
ESPERA hasta que no se le manda un trabajo de impresión, y cuando se le
manda un trabajo de impresión o tiene trabajos pendientes en la cola es el
único momento cuando se puede interrogar sobre su estado, lo cual me imagino
a ti no te va a servir de mucho.
Tengo que pensar si merece la pena incluir el nuevo código o no, y en caso
afirmativo si hacer un método ad-hoc para ello o utilizar la propiedad
nState, pero como te comento, sólo te funcionará cuando haya algún trabajo
en la cola de impresión

Un saludo
--
Ignacio Ortiz de Zúñiga
Email: iozuniga@ozs.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:[email=46bc2bee@ozsrv2.ozlan.local...]46bc2bee@ozsrv2.ozlan.local...[/email]
> Pedro,
>
> Ya he visto como se saca dicha información con la función EnumJobs(), pero
> tiene bastante trabajo. Intentarmos tenerlo para la siguiente versión de
> Xailer.
>
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> Email: iozuniga@ozs.com
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:46bc2640$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Pedro,
>>
>> Me temo que está mal la documentación. La propiedad es realmente nStatus,
>> pero compruebo que sólo retorna los valores que indica en la
>> documentación para Windows 95 y para Windows NT o superiores sólo son
>> válidos los siguientes valores:
>>
>> PRINTER_STATUS_PAUSED
>> PRINTER_STATUS_PENDING_DELETION
>>
>> He estado investigando en el API la forma de conseguir dicha información
>> de la impresora, pero sin éxito. Seguiré buscando y te comento algo
>> cuanto antes.
>>
>> Un saludo,
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> Email: iozuniga@ozs.com
>> "Pedro Amaro" <dospcserv@hotmail.com> escribió en el mensaje
>> news:46bb7f24$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Sigo con la aplicación de ticket y necesito controlar el estado de la
>>> impresora antes de mandar a imprimir, ya que si no se me queda colgado
>>> el programa al enviar la impresión, ademas me gustaria avisar si falta
>>> papel o cualquier otra incidencia que pudiera tener la impresora.
>>>
>>> He rebuscado en la ayuda y encontre Printer:nState, que parece ser lo
>>> que necesito, pero no consigo que funcione.
>>>
>>> En la ayuda indica que debemos de utilizarla asi.
>>>
>>> lPaperOut := lAnd( Printer:nState, PRINTER_STATUS_PAPER_OUT )
>>>
>>> pero al compilar me da un error
>>>
>>> Warning W0001 Ambiguous reference: 'PRINTER_STATUS_PAPER_OUT'
>>>
>>> Supongo que intenta decirme que no tiene ni idea de que es eso que le he
>>> escrito, para mi novato entender es una constante, pero...
>>>
>>> ¿Tengo que declaralas antes? y si es asi ¿Donde?
>>>
>>> Un saludo
>>> Pedro Amaro
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com