Hola.! No puedo resolver sus problemas de impresion directa a un puerto USB, pero como estan en la misma linea que yo con las impresoras de tickets y la impresion directa al puerto, aprovecho para consultarles algo:
Em mi aplicacion imprimo directamente al puerto LPT. Pero para saber si la impresora esta encendida o no antes de imprimir, utilizo una rutina en asembler..
// Controla el estado de una impresora
// Devuelve verdadero si existe impresora conectada.
function IsPrinter( iWord: Integer ) : Boolean;
const
PrnStInt : Byte = $17;
StRq : Byte = $02;
var
PrnNum : Word; { 0 para LPT1, 1 para LPT2, etc. }
nResult : byte;
begin
PrnNum := iWord;
Asm
mov ah,StRq;
mov dx,PrnNum;
Int $17;
mov nResult,ah;
end;
IsPrinter := (nResult and $80) = $80;
end;
..., la cual me devuelve el estado de la impresora y yo presento un mensaje al usuario si esta esta apagada o desconectada. En windows XP, esta rutina no me sirve. Ustedes saben como obtener el estado de la impresora desde una aplicacion corriendo con Windows XP.???
Gracias.
Saludos
Jose Miguel Bakulic V.
|