有关用API直接打印的问题--300分(300分)

  • 主题发起人 主题发起人 小刀枪
  • 开始时间 开始时间

小刀枪

Unregistered / Unconfirmed
GUEST, unregistred user!
可以直接使用API函数实现LPT&COM的打印吗?
 
直接打印?什么概念是不用打印驱动吗?<br>当然,打印肯定可以用API来做。
 
当然可以,用CreateFile初始化端口,Lpt或com端口。lpt端口的话,用ReadPort($379)检测<br>lpt端口返回的状态。com端口可以写个接收端口返回状态的程序。如果要往端口写数据的话<br>可用WriteFile来完成。
 
查一下DELPHI帮助里的WIN32 SDK 有说明。
 
98下:<br>procedure printonechar(_chr:char);<br>begin<br>asm<br>&nbsp; &nbsp;mov ah,1<br>&nbsp; &nbsp;mov al,_chr<br>&nbsp; &nbsp;mov dx,0<br>&nbsp; &nbsp;int 17h<br>end;<br>end;<br><br>procedure printstr(_str:string);<br>var<br>ct:word;<br>begin<br>&nbsp; for ct:=1 to length(_str) do<br>&nbsp; &nbsp; &nbsp; printonechar(_str[ct]);<br>end;<br><br>procedure printCRLF;<br>begin<br>&nbsp; &nbsp; &nbsp; printonechar($D);<br>&nbsp; &nbsp; &nbsp; printonechar($A);<br>end;<br><br>procedure printoneline(_str:string);<br>begin<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printstr(_str);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; printCRLF;<br>end;<br>
 
var<br>F:TEXTFILE;<br>BEGIN<br>&nbsp;ASSIGNFILE(F,'LPT1'); <br>&nbsp;REWRITE(F);<br>&nbsp;WRITELN(F,'TEST1 FIRST LINE');<br>&nbsp;WRITELN(F,'TEST2 SECOND LINE');<br>&nbsp;CLOSEFILE(F);<br>end;<br><br>这个算吗?<br>
 
to alenlin:<br>你所说的在WIN2000下实现过吗?
 
后退
顶部