題 Windows上打印作業ID的有效範圍是多少?


我已經嘗試了一段時間來搜索這個,但我找不到任何MS文檔,詳細說明了Windows的最大和最小有效打印作業ID。

有沒有人知道任何可能提供此信息的文檔?

我問的原因是因為我需要知道0是否是有效的打印作業ID。我假設沒有,但我真的沒有多少基礎!


3
2017-10-01 08:18


起源


你在編程嗎?如果是,請向隊列添加內容,然後檢索ID - Dave
好吧,我問的原因是因為我的情況是我在我的打印機驅動程序中遇到意外事件,給我一個0的作業ID。然後在下一個事件中獲得真正的工作ID。所以我只是想知道我是否可以依賴0作為無效的作業ID並根據作業((= = 0)=>無效事件拋出事件)。我想我需要更多的信心,而不是從一些打印返回的幾個有效ID做出假設。 :) - Andy
不,你不能依賴它 - 身份證與國家無關。這可能有所幫助: support.microsoft.com/kb/202480 〜(這是如何從Visual Basic確定打印機狀態和打印作業狀態) - Dave
但是,如何才能獲得不存在的打印作業的狀態? ;)我想我可以嘗試獲取打印作業,如果它不存在,我知道它是一個無效的作業ID。我想我只是想知道是否有文件意味著我可以依賴於作業ID為0來表示無效事件。 - Andy
但是,工作ID為0並不意味著它不存在 - 這意味著它是生活和快樂(或不快樂)! - Dave


答案:


在OP的評論中回答

它(參見下面的源代碼)在作業ID下表示0表示尚未為其分配ID的打印作業。它確實存在,但尚未分配ID(ID為1或以上)。

資源


0
2017-10-01 08:35





根據文件 Win32_PrintJob 上課 JobId 財產是一個 uint32,因此其值可能介於0到4,294,967,295之間(232-1)。但是,可能會有其他限制。


0



這是可表示的範圍,並非所有範圍都必須有效。正如評論所述,對於無效作業,您可以獲得jobID = 0。 - MSalters