c#如何获取打印机任务列表

铛铛 2010-03-15 09:49:04
c#如何获取打印机任务列表!!!
不胜感激!!!!
...全文
510 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Passage2011 2010-03-15
  • 打赏
  • 举报
回复
关注中
deyter 2010-03-15
  • 打赏
  • 举报
回复
网上找的
如:设置默认打印机
using System.Management;

private ManagementObjectSearcher query;
private ManagementObjectCollection queryCollection;
string _classname="SELECT * FROM Win32_Printer";

query=new ManagementObjectSearcher(_classname);
queryCollection = query.Get();

foreach (ManagementObject mo in queryCollection)
{
if (string.Compare(mo["Name"].ToString(),PrinterName,true)==0)
{
mo.InvokeMethod("SetDefaultPrinter",null); //调用了其方法,可修改此处获取相关状态属性
break;
}
}
相同的方法,你在得到具体的打印机实例时,可以获取到其相关属性,再显示出来即可。
CodeProject-Jerry 2010-03-15
  • 打赏
  • 举报
回复
P/Invoke

首先调用 OpenPrinter 获得打印机句柄

BOOL OpenPrinter(
LPTSTR pPrinterName, // printer or server name
LPHANDLE phPrinter, // printer or server handle
LPPRINTER_DEFAULTS pDefault // printer defaults
);


然后调用 EnumJobs 枚举 每个工作任务

BOOL EnumJobs(
HANDLE hPrinter, // handle to printer object
DWORD FirstJob, // index of first job
DWORD NoJobs, // number of jobs to enumerate
DWORD Level, // information level
LPBYTE pJob, // job information buffer
DWORD cbBuf, // size of job information buffer
LPDWORD pcbNeeded, // bytes received or required
LPDWORD pcReturned // number of jobs received
);


最后不要忘记了 关闭句柄,释放资源\

BOOL ClosePrinter(
HANDLE hPrinter // handle to printer object
);



相关p/invoke可以到此站点查询 http://www.pinvoke.net/

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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