Impresora conectada en Windows XP/NT2000
Hola integrantes del foro.
La verdad no conosco mucho de Assembler, casi nada. La razon que motiva mi consulta, es que tengo un sistema de Punto de Venta desarrollado en delphi. Y este imprime directamente al puerto de la impresora. Para constatar que una impresora esta conectada y activa. Utilizo un trozo de codigo assembler, el cual me fue facilitado por un integrante de otro Foro. Todo funciona perfectamente en Windows95/98. Pero al utilizar windows XP o NT2000. Esta rutina no funciona.
Alguien podria darme luz sobre este problema.
De antemano gracias.
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;
P/d:
La verdad no conosco mucho de Assembler, casi nada. La razon que motiva mi consulta, es que tengo un sistema de Punto de Venta desarrollado en delphi. Y este imprime directamente al puerto de la impresora. Para constatar que una impresora esta conectada y activa. Utilizo un trozo de codigo assembler, el cual me fue facilitado por un integrante de otro Foro. Todo funciona perfectamente en Windows95/98. Pero al utilizar windows XP o NT2000. Esta rutina no funciona.
Alguien podria darme luz sobre este problema.
De antemano gracias.
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;
P/d:
Seguramente será porque no puedes acceder directamente a las impresoras desde estos sistemas operativos, porque están vasados en el Kernel de NT. Para poder hacerlo, deberías de buscar un controlador que circula libremente para poder acceder al puerto de la impresora. Este controlador, si mal no recuerdo, lo puedes encontrar en www.sstnet.com
hola.
realmente tengo el mismo el problema y sucede que windows xp ha implantado esto con el fin de evitar la entrada de virus y hay que pedir un permiso a windows para poderlo manejar, lo que me handicho es que tengo que alterar un dll de windows para poder manejarlo.
sin embargo si alguien ya ha podido hacer esto en macroassembler por favor envienme algo de codigo.
agrdezco de antemano
realmente tengo el mismo el problema y sucede que windows xp ha implantado esto con el fin de evitar la entrada de virus y hay que pedir un permiso a windows para poderlo manejar, lo que me handicho es que tengo que alterar un dll de windows para poder manejarlo.
sin embargo si alguien ya ha podido hacer esto en macroassembler por favor envienme algo de codigo.
agrdezco de antemano