标题:打印机代码怎么写?
只看楼主
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
结帖率:80%
已结贴  问题点数:10 回复次数:6 
打印机代码怎么写?
打印机有时会暂停打印,能不能用vb6代码控制打印机,取消暂停打印?
搜索更多相关主题的帖子: 代码 取消 打印 打印机 暂停 
2023-02-27 22:39
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:10 
开始打印了,就取消暂停打印了。

你打开的这个是软件程序,也可以通过句柄来操作它。

打开的这个界面只是个工具。用命令也能打印文件。

[此贴子已经被作者于2023-2-28 19:37编辑过]


心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-02-28 19:17
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
回复 2楼 yuma
在窗体添加个两个按钮,如按钮1和按钮2
点击按钮1就暂停打印,暂停打印前面的√打上。点击按钮2就取消暂停打印,暂停打印前面的√去掉,代码怎么写?

[此贴子已经被作者于2023-2-28 21:05编辑过]

2023-02-28 21:00
yuma
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:银河系
等 级:贵宾
威 望:33
帖 子:1883
专家分:2904
注 册:2009-12-22
得分:0 
你可以尝试一下暂停一下打印服务试下。

服务启动、晢停、停止
net start spooler
net pause spooler
net stop spooler

心生万象,万象皆程序!
本人计算机知识网:http://bbs.为防伸手党,本站已停止会员注册。
2023-03-01 13:27
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:109
专家分:0
注 册:2009-3-17
得分:0 
回复 3楼 asad
Option Explicit
Private Type PRINTER_DEFAULTS
    pDatatype       As String
    pDevMode        As Long
    DesiredAccess   As Long
End Type
Private Const PRINTER_ACCESS_ADMINISTER = &H4

Private Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
Private Declare Function ClosePrinter Lib "winspool.drv" (ByVal hPrinter As Long) As Long
Private Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal Command As Long) As Long
Private hPrinter As Long

Private Sub Form_Load()
    Dim pDef As PRINTER_DEFAULTS
    pDef.DesiredAccess = PRINTER_ACCESS_ADMINISTER
    Call OpenPrinter(Printer.DeviceName, hPrinter, pDef)
End Sub

Private Sub Form_Terminate()
    Call ClosePrinter(hPrinter)
End Sub

Private Sub Command1_Click() '暂停
    Const PRINTER_CONTROL_PAUSE = 1
    Call SetPrinter(hPrinter, 0&, ByVal 0&, PRINTER_CONTROL_PAUSE)
End Sub

Private Sub Command2_Click() '取消暂停
    Const PRINTER_CONTROL_RESUME = 2
    Call SetPrinter(hPrinter, 0&, ByVal 0&, PRINTER_CONTROL_RESUME)
End Sub
2023-03-15 10:49
asad
Rank: 1
等 级:新手上路
威 望:1
帖 子:67
专家分:0
注 册:2019-12-6
得分:0 
回复 5楼 William1949
vba代码怎么写,是不是也是这个代码,谢谢
2023-03-15 17:39
William1949
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:109
专家分:0
注 册:2009-3-17
得分:0 
vba 我不熟,好像vba不能识别 Printer.DeviceName ,

不过可以用 GetDefaultPrinter 取代它, 示例:

Private Declare Function GetDefaultPrinter Lib "winspool.drv" Alias "GetDefaultPrinterA" (ByVal pszBuffer As String, pcchBuffer As Long) As Long

Private Function GetDeviceName() As String
    Dim sTemp   As String
    Dim sLen    As Long
    sLen = 255
    sTemp = String$(sLen, vbNullChar)
    Call GetDefaultPrinter(sTemp, sLen)
    GetDeviceName = Left$(sTemp, sLen - 1)
End Function
2023-03-16 13:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511411-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068895 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved