专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VFP

怎么判断打印机是否加电,是否有纸

发布时间:2010-05-24 21:30:27 文章来源:www.iduyao.cn 采编人员:星星草
如何判断打印机是否加电,是否有纸?
各位高手:我编的打印程序,希望能对打印机是否已经加电,打印机是否有纸进行判断,我在网上查到一篇文章《VFP应用程序打印功能的完善》介绍了一段程序,我稍作修改程序后如下:
Declare Integer vbinp In win95io.Dll Integer
Declare Integer vbinpw In win95io.Dll Integer
printrstatus=vbinpw(888)
Do Case
Case printrstatus>31000 And printrstatus<5000
Messagebox('打印机没加电,请加电!')
Return
Case printrstatus<31000
Messagebox('打印机没纸,请装纸!')
Return
Endcase
程序运行到第一句时出现错误提示:“不能加载32位dllwin95io.dll”,我在自己的电脑中未查到这个程序,网上有下载该dll程序。我不知道这段程序能否在vfp9.0中使用,如不能使用,应如何解决这类问题?谢谢!

------解决方案--------------------
本帖最后由 apple_8180 于 2013-03-13 14:59:36 编辑
win95io.Dll
从字面来看应该是 Windows 98 以前的控件。

如果是打印机故障或未加电造成没有打印成功是无法从得到的,因为打印任务发出后,就到了操作系统层,打印成功与否 VFP 端不知道。

你看一下 VFP 自带帮助文件中的 SYS(13) - 打印机状态
对于运行在 Windows 上的 Visual FoxPro 版本,SYS(13) 总是返回 READY。
所以我说无法得到


------解决方案--------------------
楼主代码估计是直接往打印口(并口)发送代码查询打印机状态的

我想有两个问题:
1、你现在用的打印是机否支持这种方式查询?
2、现在win7至少XP,如何直接与并口或usb接口通讯?

如果这两个问题都能解决,才能实现功能
------解决方案--------------------

Set Escape On
Clear
strComputer = "."
objWMIService = Getobject("winmgmts:"+ "{impersonationLevel=impersonate}!" + strComputer + "rootcimv2")
colInstalledPrinters = objWMIService.ExecQuery("SELECT * FROM Win32_Printer")
For Each objPrinter In colInstalledPrinters
    ? "Name: " + objPrinter.Name
    Do Case
        Case objPrinter.PrinterStatus = 1
            strPrinterStatus = "其它  "
        Case objPrinter.PrinterStatus = 2
            strPrinterStatus = "未知的"
        Case objPrinter.PrinterStatus = 3
            strPrinterStatus = "等待中"
        Case objPrinter.PrinterStatus = 4
            strPrinterStatus = "在打印"
        Case objPrinter.PrinterStatus = 5
            strPrinterStatus = "预热中"
    Endcase
    ? "打印机状态: " + strPrinterStatus
Next

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: