精易论坛
标题: 取当前系统打印机上还有几份文档没有打印完成? [打印本页]
作者: yangyao 时间: 2025-1-25 08:13
标题: 取当前系统打印机上还有几份文档没有打印完成? 取当前系统打印机上还有几份文档没有打印完成? 如何写?
作者: FUYUEPC 时间: 2025-1-25 08:59
[PowerShell] 纯文本查看 复制代码
# 获取默认打印机的打印队列
$printer = Get-WmiObject -Query "SELECT * FROM Win32_Printer WHERE Default=$true"
$jobs = Get-WmiObject -Query "SELECT * FROM Win32_PrintJob WHERE Name LIKE '%$($printer.Name)%'"
# 输出未完成打印的文档数量
$jobCount = $jobs.Count
Write-Host "当前打印机上还有 $jobCount 份文档没有打印完成。"
作者: FUYUEPC 时间: 2025-1-25 09:02
DLL 调用 WIN32API
.子程序 EnumJobs, 整数型, "Winspool.drv", "EnumJobs", 公开
(暂未填写DLL命令名) (未填写库文件名) (未填写命令名) hPrinter 整数型 FirstJob 整数型 NoJobs 整数型 Level 整数型 pJob 整数型 cbBuf 整数型 pcbNeeded 整数型 pcReturned 整数型
.局部变量 打印机句柄, 整数型
.局部变量 打印队列数量, 整数型
.局部变量 返回值, 整数型
调用 API
打开打印机 ( "Winspool.drv", "OpenPrinterA"
) , 打印机句柄
如果 ( 打印机句柄 > 0
) 调用
EnumJobs ( 打印机句柄, 0, 0, 1, 0, 0, 返回值, 打印队列数量
) 调用 API
关闭打印机 ( 打印机句柄
) 返回 ( 打印队列数量
) shell32 (未知支持库) user32 (未知支持库)
作者: FUYUEPC 时间: 2025-1-25 09:03
[Python] 纯文本查看 复制代码
import win32print
def get_pending_print_jobs():
printer_name = win32print.GetDefaultPrinter()
printer_handle = win32print.OpenPrinter(printer_name)
try:
print_jobs = win32print.EnumJobs(printer_handle, 0, -1, 1)
return len(print_jobs)
finally:
win32print.ClosePrinter(printer_handle)
if __name__ == "__main__":
print(f"当前打印队列中未完成的文档数量: {get_pending_print_jobs()}")
作者: yangyao 时间: 2025-1-25 13:41
(暂未填写DLL命令名) (未填写命令名) 这里面是什么内容?
作者: qq977352880 时间: 2025-1-25 18:30
关注一下,期待更多讨论。
作者: chenyucheng 时间: 2025-1-25 21:19
他写错了。
.DLL命令 EnumJobs, 整数型, "Winspool.drv", "EnumJobs", 公开
(暂未填写DLL命令名) (未填写库文件名) (未填写命令名) hPrinter 整数型 FirstJob 整数型 NoJobs 整数型 Level 整数型 pJob 整数型 cbBuf 整数型 pcbNeeded 整数型 pcReturned 整数型
.局部变量 打印机句柄, 整数型
.局部变量 打印队列数量, 整数型
.局部变量 返回值, 整数型
调用 API
打开打印机 ( "Winspool.drv", "OpenPrinterA"
) , 打印机句柄
如果 ( 打印机句柄 > 0
) 调用
EnumJobs ( 打印机句柄, 0, 0, 1, 0, 0, 返回值, 打印队列数量
) 调用 API
关闭打印机 ( 打印机句柄
) 返回 ( 打印队列数量
) shell32 (未知支持库) user32 (未知支持库)
作者: chenyucheng 时间: 2025-1-25 21:32
错了,再改一下。他这个代码本来就有错误。
.版本 2.支持库 shell
EnumJobs 整数型 Winspool.drv EnumJobs hPrinter 整数型 FirstJob 整数型 NoJobs 整数型 Level 整数型 pJob 整数型 cbBuf 整数型 pcbNeeded 整数型 pcReturned 整数型
变量名 类 型 静态 数组 备 注 打印机句柄 整数型 打印队列数量 整数型 返回值 整数型
打开打印机 ( “Winspool.drv” ,
“OpenPrinterA” , 打印机句柄
) 如果真 ( 打印机句柄 > 0
) EnumJobs ( 打印机句柄, 0, 0, 1, 0, 0, 返回值, 打印队列数量
) 关闭打印机 ( 打印机句柄
) 返回 ( 打印队列数量)
作者: 编程阿狸 时间: 2025-1-28 01:02
# 获取默认打印机的打印队列
$printer = Get-WmiObject -Query "SELECT * FROM Win32_Printer WHERE Default=$true"
$jobs = Get-WmiObject -Query "SELECT * FROM Win32_PrintJob WHERE Name LIKE '%$($printer.Name)%'"
# 输出未完成打印的文档数量
$jobCount = $jobs.Count
Write-Host "当前打印机上还有 $jobCount 份文档没有打印完成。"
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4