监控打印机状态问题

Notting-Hill 2013-08-05 03:09:36
用EnumJobs()获取打印任务队列,返回到一个JOB_INFO_1类型的数组pJobInfo[i]里面。
pJobInfo[i].pDocument
pJobInfo[i].pMachineName等等 通过这些调用来获取当前任务的信息
但是 关键是pJobInfo[i].Status来获取打印任务出问题了
每次监控打印 第一步获取到的进制的Status为0,然后“打印暂停”Status为1,
脱机打印的时候Status为8.
打印完成的时候Status为16进制的2010。

目前只能Status只能取到这几个值,未取到其他的值。

问题:1.为什么只能获取到这几个状态。
2.2010这个值是怎么得到的?
...全文
530 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
崔世勋 2013-11-23
  • 打赏
  • 举报
回复
引用 9 楼 u011581242 的回复:
问题已解决 程序功能已经全部实现 如果以后有相类似的问题 希望我可以帮忙 QQ719706732
我也遇见了相同的问题,请问是怎么解决的
aliecegogo 2013-08-19
  • 打赏
  • 举报
回复
我现在也遇到不能获取到 Pause 状态,请问大侠怎么解决的呢?
Notting-Hill 2013-08-13
  • 打赏
  • 举报
回复
问题已解决 程序功能已经全部实现 如果以后有相类似的问题 希望我可以帮忙 QQ719706732
Notting-Hill 2013-08-05
  • 打赏
  • 举报
回复
引用 2 楼 zwfgdlc 的回复:
看这个 http://msdn.microsoft.com/en-us/library/windows/desktop/dd145019%28v=vs.85%29.aspx
对啊 就是用的这个结构体 现在关键问题就是 这里面的状态没法完全获取到 只能获取到几个 [/quote] 你可能获取到的状态是几个状态的组合,并不是只有一种状态.[/quote] 恩 大哥 可能是这样的 但是 为什么其他的状态取不到呢 其他的问题能都解决 目前就状态这个问题 没法监控到 愁死了
zwfgdlc 2013-08-05
  • 打赏
  • 举报
回复
引用 3 楼 u011581242 的回复:
[quote=引用 2 楼 zwfgdlc 的回复:] 看这个 http://msdn.microsoft.com/en-us/library/windows/desktop/dd145019%28v=vs.85%29.aspx
对啊 就是用的这个结构体 现在关键问题就是 这里面的状态没法完全获取到 只能获取到几个 [/quote] 你可能获取到的状态是几个状态的组合,并不是只有一种状态.
Vin-Leo 2013-08-05
  • 打赏
  • 举报
回复
这是 Status可以取到的值 问题是现在 好多状态 都没法获取到 像 JOB_STATUS_PRINTING JOB_STATUS_RESTART 这些有用的状态 都没法获取到 只能获取 JOB_STATUS_SPOOLING JOB_STATUS_PUASED 这两个状态 另外 任务打印完成的时候 Status的值 是10进制下的8208 16进制下的2010 但是winspool.h中定义的Satus的取值 最大的值是16进制下的1000 那2010 是怎么取到的呢?
Notting-Hill 2013-08-05
  • 打赏
  • 举报
回复
JOB_STATUS_BLOCKED_DEVQ The driver cannot print the job. JOB_STATUS_COMPLETE Windows XP and later: Job is sent to the printer, but the job may not be printed yet. See Remarks for more information. JOB_STATUS_DELETED Job has been deleted. JOB_STATUS_DELETING Job is being deleted. JOB_STATUS_ERROR An error is associated with the job. JOB_STATUS_OFFLINE Printer is offline. JOB_STATUS_PAPEROUT Printer is out of paper. JOB_STATUS_PAUSED Job is paused. JOB_STATUS_PRINTED Job has printed. JOB_STATUS_PRINTING Job is printing. JOB_STATUS_RESTART Job has been restarted. JOB_STATUS_SPOOLING Job is spooling. JOB_STATUS_USER_INTERVENTION Printer has an error that requires the user to do something.
Notting-Hill 2013-08-05
  • 打赏
  • 举报
回复
typedef struct _JOB_INFO_1 { DWORD JobId; LPTSTR pPrinterName; LPTSTR pMachineName; LPTSTR pUserName; LPTSTR pDocument; LPTSTR pDatatype; LPTSTR pStatus; DWORD Status; DWORD Priority; DWORD Position; DWORD TotalPages; DWORD PagesPrinted; SYSTEMTIME Submitted; } JOB_INFO_1, *PJOB_INFO_1; 用的就是这个结构体
Notting-Hill 2013-08-05
  • 打赏
  • 举报
回复
引用 2 楼 zwfgdlc 的回复:
看这个 http://msdn.microsoft.com/en-us/library/windows/desktop/dd145019%28v=vs.85%29.aspx
对啊 就是用的这个结构体 现在关键问题就是 这里面的状态没法完全获取到 只能获取到几个
Notting-Hill 2013-08-05
  • 打赏
  • 举报
回复
搜了好几天了 好像没人遇到我这种问题 ……

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧