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
>>>
>>>
>>
>>
>
>