易语言如何获取打印队列?查了一下应该是用EnumJobs,但是具体怎么用麻烦大神给码,最好是截个图
发布网友
发布时间:2022-05-06 19:24
我来回答
共1个回答
热心网友
时间:2023-09-12 16:27
提供给百度:
.版本 2
.子程序 枚举打印列队, 整数型, 公开, 枚举打印队列中的作业,成功返回某打印机列队文档数量,失败返回-1
.参数 打印机名称, 文本型, 可空, 可空,即默认打印机。
.参数 列队信息, 打印任务信息, 数组, 储存输出信息。
.局部变量 hPrinter
.局部变量 pd, 打印默认_
.局部变量 bool, 逻辑型
.局部变量 dwNeeded
.局部变量 lReturned
.局部变量 hMem
.局部变量 job, JOB_INFO_2
.局部变量 cnt, 整数型
.局部变量 Hour, 文本型
.局部变量 Minute, 文本型
.局部变量 Second, 文本型
.局部变量 Month, 文本型
.局部变量 Day, 文本型
.局部变量 Time, 文本型
清除数组 (列队信息)
打印机名称 = 选择 (是否为空 (打印机名称), 取默认打印机 (), 打印机名称)
.如果真 (OpenPrinter (打印机名称, hPrinter, pd))
EnumJobs (hPrinter, 0, 99, 2, 0, 0, dwNeeded, lReturned)
hMem = GlobalAlloc (64, dwNeeded)
bool = EnumJobs (hPrinter, 0, 99, 2, hMem, dwNeeded, dwNeeded, lReturned)
.如果真 (bool)
重定义数组 (列队信息, 假, lReturned)
.变量循环首 (0, lReturned - 1, 1, cnt)
CopyMemory_job_info_2 (job, 指针到字节集 (hMem + cnt × 104, 104), 104)
Month = 选择 (job.Submitted.月 < 10, “0” + 到文本 (job.Submitted.月), 到文本 (job.Submitted.月))
Day = 选择 (job.Submitted.日 < 10, “0” + 到文本 (job.Submitted.日), 到文本 (job.Submitted.日))
Hour = 选择 (8 + job.Submitted.小时 < 10, “0” + 到文本 (job.Submitted.小时 + 8), 到文本 (job.Submitted.小时 + 8))
Minute = 选择 (job.Submitted.分 < 10, “0” + 到文本 (job.Submitted.分), 到文本 (job.Submitted.分))
Second = 选择 (job.Submitted.秒 < 10, “0” + 到文本 (job.Submitted.秒), 到文本 (job.Submitted.秒))
Time = Hour + “:” + Minute + “:” + Second + “ ” + 到文本 (job.Submitted.年) + 系统_取日期分隔符 () + Month + 系统_取日期分隔符 () + Day + “ ” + 取星期 (job.Submitted.星期)
列队信息 [cnt + 1].任务ID = job.JobId
列队信息 [cnt + 1].打印机名称 = 指针到文本 (job.pPrinterName)
列队信息 [cnt + 1].任务创建者 = 指针到文本 (job.pMachineName)
列队信息 [cnt + 1].所有者 = 指针到文本 (job.pUserName)
列队信息 [cnt + 1].通知 = 指针到文本 (job.pNotifyName)
列队信息 [cnt + 1].文档名 = 指针到文本 (job.pDocument)
列队信息 [cnt + 1].数据类型 = 指针到文本 (job.pDatatype)
列队信息 [cnt + 1].处理器名字 = 指针到文本 (job.pPrintProcessor)
列队信息 [cnt + 1].驱动名称 = 指针到文本 (job.pDriverName)
列队信息 [cnt + 1].提交时间 = Time
列队信息 [cnt + 1].大小 = job.Size
列队信息 [cnt + 1].页数 = job.TotalPages
列队信息 [cnt + 1].状态 = job.Status
列队信息 [cnt + 1].优先级 = job.Priority
.变量循环尾 ()
.如果真结束
ClosePrinter (hPrinter)
返回 (lReturned)
.如果真结束
返回 (-1)
搬运来源精易论坛同楼主发的贴。API参数自行搜索