获取打印机队列信息的问题。

cxxer 2022-04-11 16:10:02

void __fastcall TfrmMain::Button1Click(TObject *Sender)
{
	HANDLE hPrinter;  //打印机句柄
	String PrinterName = "Hewlett-Packard HP LaserJet Pro MFP M128fw";
	//打印机名称

	WORD wNoJobs;     //希望获取的作业数
	DWORD dwS;        //Job_Info的字节数
	JOB_INFO_1 Job_Info[10];    //打印队列信息

	DWORD dwNeeded;
	DWORD dwReturned;  //返回作业数
	bool bRet;
	UINT i;

	if (!OpenPrinter(PrinterName.c_str(), &hPrinter, NULL))  //打开打印机名称
	{
		MessageBox(frmMain->Handle, L"打开打印机失败。", L"信息", MB_OK);
		return;     //退出测试
	}

	dwS = sizeof(Job_Info);
	dwNeeded = 0;
	dwReturned = 0;
	wNoJobs = 10;
	bRet = EnumJobs(hPrinter, 0, wNoJobs, 1, (LPBYTE)(&Job_Info),
					dwS, &dwNeeded, &dwReturned);

	if (bRet)    //显示打印队列信息
	{
		Memo1->Clear();
		Memo1->Lines->Add(String("共有打印任务:") + dwReturned + "个。");
		for (int i=0; i < dwReturned; i++)
		{
			Memo1->Lines->Add(String("第") + IntToStr(i+1) + " 个打印任务有 "
							  + Job_Info[i].TotalPages + "页。");
		}
	}
	else
		MessageBox(Handle, L"未能正确获取打印作业信息。", L"警告",
					MB_OK | MB_ICONWARNING);
	ClosePrinter(hPrinter); //关闭打印机
}

 

 

...全文
243 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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