PDA

Ver la Versión Completa : detectar si una impresora esta lista


noe
10-02-2004, 19:26:14
:cool: Saludos a todos los foristas, mi pregunta es la siguiente:
:confused: como puedo detectar con codigo si una impresora esta lista antes de que se mande a imprimir, les agradeceria me enviaran algo de codigo y ejemplos.
esto es para la realizacion de la impresion de un corte de caja, pero antes de que se realice el corte deseo verificar si la impresora ya esta lista para imprimir
de antemano gracias por la ayuda.
atte. noe

delphi.com.ar
10-02-2004, 20:03:13
En Win9x podrías utilizar este código que lo extraje de la unit printers de pascal: function GetPrnStatus(LptNo: Word) : Byte; assembler;
asm
mov dx, LptNo
mov ah,02
int 17h
xchg ah,al
end;

Pero sinceramente no te lo recomiendo, te recomiendo utilizar la función GetPrinter con el parámetro Level=2 y el tipo PRINTER_INFO_2 en el parámetro pPrinter. El "campo" status del PRINTER_INFO_2, te dará el estado de la impresora. (Te recomiendo leer la ayuda de la función que esta muy explicado)

Saludos!

serhasae
27-10-2005, 13:17:04
Creo que te has equivocado delphi. el printer_info_6 es el que te especifica el estado de la impresora, sera level 2 y puntero 6 para nt o xp. Saludos. Serhasae.

delphi.com.ar
27-10-2005, 14:23:18
Creo que te has equivocado delphi. el printer_info_6 es el que te especifica el estado de la impresora, sera level 2 y puntero 6 para nt o xp. Saludos. Serhasae.
Pues, no!
La MSDN (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_1gky.asp) es algo confusa, dice que PRINTER_INFO_6 es exclusivo para Windows 2000/XP, pero dice que en Windows NT/2000/XP, el level puede ser: 1, 2, 3, 4, 5, 6, 7, 8 o 9..
Con PRINTER_INFO_2 te olvidas de todo, es compatible con todas las arquitecturas, y puedes obtener fácilmente el estado! ;)

Saludos!

serhasae
27-10-2005, 14:36:17
Pues entonces pon algun ejemplo de obtener el estado usando esa estructura, ya que voy algo perdido. Saludos. Serhasae.

delphi.com.ar
27-10-2005, 15:00:26
Aquí te he subido algo:
http://www.clubdelphi.com/foros/showthread.php?t=26579

¡Pruébalo ya que yo simplemente me fijé si compilaba!

Saludos!