给打印机设置“软开关”的实用程序 范明之 1997-01-01   计算机中内存地址为0040:0008H-0040:000FH的八个字节存放着四个打印口的地址,若计算机只配有一个打印口LPT1,该处八个字节为:78 03 00 00 00 00 00 00,将LPT1打印口地址0378H修改为0000H,就使打印机在DOS状态下或任何软件中,都无法进行打印,打印机处于“关闭:OFF”状态;若恢复LPT1的正确地址值,打印机又正常工作,打印机处于“开启:ON”状态。   了解以上原理后,笔者利用DEBUG编写了二个小程序:PRNOFF.COM、PRNON.COM,运行PRNOFF.COM使打印机处于“关闭”状态;若需要打印,只要“开启”打印机,运行PRNON.COM程序即可,这样便有效地控制了打印机的工作状态,达到禁止非法用户使用的目的,相当实用。 #2  一、设置打印机“关闭:OFF”程序:PRNOFF.COM   C:\DOS>DEBUG   -A   81BE:0100 MOV AX,0040(置数据段地址)   81BE:0103 MOV DS,AX   81BE:0105 MOV SI,0008(地址偏移至0008H处)   81BE:0108 MOV WO[SI],0000(将0040:0008H处的地址值改为0000H)   81BE:010C MOV AH,4C   81BE:010E INT 21   81BE:0110   -R CX(读取文件长度)   CX 0000   :10   -N PRNOFF.COM(给程序命名)   -W(存盘)   Writting 00010 bytes   -Q(退出)   笔者将PRNOFF.COM加入AUTOEXEC.BAT中,使一开机便将BIOS中0040:0008处LPT1打印口地址修改为:0000H,计算机因联不上打印机,故不进行正常打印,打印机处于“关闭”状态。 #2  二、设置打印机“开启:ON”程序:PRNON.COM   C:\DOS>DEBUG   -A   81BE:0100 MOV AX,0040   81BE:0103 MOV DS,AX   81BE:0105 MOV BX,0378   81BE:0108 MOV [0008],BX(将LPT1打印口地址值复原)   81BE:010C INT 20   81BE:010E   -R CX   CX 0000   :E   -N PRNON.COM   -W   Writting 0000E bytes   -Q   需要打印时,运行打印机“开启”程序:PRNON.COM即可。