請問:如何在BCB中得知印表機 Spool 中有多少 Jobs 還沒列印 |
答題得分者是:RaynorPao
|
lewis
一般會員 發表:1 回覆:3 積分:0 註冊:2002-04-22 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
lewis
一般會員 發表:1 回覆:3 積分:0 註冊:2002-04-22 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 在 MSDN 中,曾經查到一個API--GetPrinter 有類似的功能,只是我一直試不出來。不知您了解這個 API 的用法嗎?可否提供簡單的範例讓我參考呢?不勝感激!lewis 你好: 請參考以下做法 < class="code"> (1)GetPrinter const char *szPrinterName="xxxPrinter"; HANDLE hPrint; PRINTER_DEFAULTS pd; PRINTER_INFO_2 *pi2; BYTE pPrinter[2048]={0}; DWORD dwBuf=2048; DWORD dwNeed=0; // Open Printer pd.pDatatype=NULL; pd.pDevMode=NULL; pd.DesiredAccess=PRINTER_ALL_ACCESS; OpenPrinter(szPrinterName, &hPrint, &pd); GetPrinter(hPrinter, 2, pPrinter, dwBuf, &dwNeeded); pi2=(PRINTER_INFO_2*)pPrinter; ............................. printf("\njobs=%d", pi2->cJobs); ............................. ClosePrinter(hPrinter); (2)EnumJobs 和上面的寫法類似 就留給你自己寫吧< > > 備註: (>仔細看>< > ( > --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
lewis
一般會員 發表:1 回覆:3 積分:0 註冊:2002-04-22 發送簡訊給我 |
多謝 RaynorPao 兄,我的問題已經解決了! 在此把我解決的函式列出,做一個回饋! // 取得印表機 Spool 中的工作數
int InvGetPrinterJobs(char *APrinterName)
{
HANDLE hPrint;
PRINTER_DEFAULTS pd;
PRINTER_INFO_2 *pi2;
BYTE pPrinter[2048] = {0};
DWORD dwBuf = 2048;
DWORD dwNeed = 0;
int Result = 0; pd.pDatatype = NULL;
pd.pDevMode = NULL;
pd.DesiredAccess = PRINTER_ALL_ACCESS; if (OpenPrinter(APrinterName, &hPrint, &pd))
{
if (GetPrinter(hPrint, 2, pPrinter, dwBuf, &dwNeed))
{
pi2 = (PRINTER_INFO_2*)pPrinter;
Result = pi2->cJobs;
} ClosePrinter(hPrint);
} return Result;
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |