还是打印的问题.看似蛮简单的,可就不是咱整!狂晕......

在打印票据时,当打印机一开始打印票据我就开始判断打印任务是否结束,如果结束了就开始切纸,如果没有结束则继续打印。
但现在的问题就是:
打印机从开始打印到切纸的这个过程中不能执行其它的操作,总不可能就等着一直打完了再去录入其它的交易呀!!
可不可以打印队列返回的消息进行控制,如果是打完了,就开妈切纸?????或是把判断打印任务的过程做成一多线程的?
[203 byte] By [friendwei-友威] at [2008-6-10]
# 1
应该作成一多线程的。网上有这方面的例子。搜索一下
flc-▄︻┻┳═一 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 2
哪位哥们这方面的经验呀!
friendwei-友威 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 3
大哥,没做过这方面的东东,找个有星的来问一下吧

只能帮你Up了
wangzqm-冰雨 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 4
你个办法不用线程 ,你可以试试! 用系统钩子,找到在打印机的打印列队里的那个文件名是否还在,
用系统 钩子就是可以返回打印完的那个文档名,如果和你的相同就开妈切纸!
你试试吧! 祝你好运 !
99175776-99175776 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 5
没那么麻烦吧?用一个TIMER控件,每1秒钟判断打印是否已执行完,如果执行完就切纸,不就结了。

我的确没见过能用程序控制切纸的打印机。兄弟你用的什么打印机?
junglerover-灌木丛 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 6
检查打印队列中是否还有打印的任务(几个)
Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As Any) As Long
Private Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long

Private Sub Command1_Click()
Dim hPrinter As Long
Dim dwNeeded, dwReturned As Long
Dim b(1000) As Byte

If OpenPrinter("Canon Bubble-Jet BJ-10e", hPrinter, ByVal 0&) = 0 Then
Exit Sub
End If

EnumJobs hPrinter, 0, &HFFFFFFFF, 1, b(0), 1000, dwNeeded, _
dwReturned
MsgBox "有" & dwReturned & "个打印任务!"
ClosePrinter hPrinter
End Sub
# 7
我试试看
friendwei-友威 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 8
to fuanwei(草原上狂奔的蜗牛)
打印任务的问题都解决了,但现在的问题是如何避开检查打印任务所占用的时间。
friendwei-友威 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 9
照你的说法是在按下打印后不管,然后系统自己检查打印任务,而且可以自己同时进行其它的操作

这样的话就需要用到多线程了,但是在vb中使用多线程很占资源,而且特别不方便!

我没有使用过多线程,所以也不能帮助你了,你去网上搜索一下多线程的例子看看是否对你有帮助!
ukyoxh-我来学习 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 10
用多线程
shao528-远洋 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...
# 11
谢谢各位热情拔刀相助!
我自己搞定了!

结帐!呵呵
friendwei-友威 at 2007-10-27 > top of Msdn China Tech,visual basic,基础类...