在代码中使用
open "lpt1" for output as #1
print #1,"sss"
close #1
如果我在lpt1没有行打印机时应付在close #1这句没有响应。
当有打印机时没有问题。
请高手指点这是为什么呢!!!

解决方案 »

  1.   

    检测一下端口LPT1的打印机是否联机.
      

  2.   

    如果打印机不存在,Open语句就会出错,不应该忽略错误。
      

  3.   

    加上一句:on error resume next
      

  4.   

    就是加了才会跑到 Close 没响应,如果好好处理错误就不会再跑下去。又:chenjl1031 再成都还好吧?
      

  5.   

    on error goto aaa
    open "lpt1" for output as #1 
    print #1,"sss" 
    close #1 
    goto bbb
    aaa:
    close #1 
    msgbox "打印机没有连接好吧,是不是检查一下?"
    bbb:后续代码
      

  6.   

    如何得到打印机的状态(打印前检测打印机是否联机, 打印后检测是否打印过程是否正常)
    可惜,这段代码是C++的,没找到VB的:
    http://www.china-askpro.com/msg9/qa81.shtml
      

  7.   

    检测打印机是否联机:
    VB的
    http://blog.csdn.net/kylefei/archive/2006/03/31/645684.aspx
    http://www.programfan.com/club/showpost.asp?id=19977
      

  8.   

    查看打印机的状态
    VB6源码下载
    http://www.newasp.net/code/vb/1352.html
      

  9.   

    在窗体加栽中使用下列语句,由系统自己判别是否有打印机,有打印机连接则系统不报错,无打印机连接则系统报错。Private Sub Form_Load()
        Printer.Print ""
        Printer.EndDoc
    End Sub
      

  10.   

    [vb] 如何用api实现打印预览,打印机状态监控.
    这个很多全面
     http://bbs.lx521.com/viewthread.php?tid=56029还有一个:
    http://topic.csdn.net/t/20021026/23/1128270.html
      

  11.   

    不用那么复杂,只要正确处理Open时的错误就可以了。
    楼主到底怎样了,难道象写小说一样太监了。
      

  12.   

    不好意思又出差了。
    我在open时没有用on error,但在单步调试时,运行完open查看err.number没有问题。
    在close前用了on error resume next ,结果close时就停了没有响应。
      

  13.   

    那就改用 Printer 对象好了。
    如果使用默认打印机则直接用 Printer 对象;否则与用户约定一个打印机名称,通过枚举/检查 Printer(i).DeviceName 看是否存在你需要的打印机,这样纯 VB 代码搞定。
      

  14.   

    楼主这么做,好像在操作并口而不是打印机,所以应该用到并口IO的一些函数,比如一些封装好的dll(winio).
    查看并口的控制寄存器,可以判断端口是否打开,没有打开的话就不要close了另外如果直接操作打印机,直接用Printer好了
      

  15.   

    用的是实时行式打印,所以才用open lpt1没有用printer对象