监控打印机

uses Winapi.WinSpool;

procedure TForm1.Button1Click(Sender: TObject);
var
pi2: PRINTER_INFO_2;
hPrinter: THandle;
Jobs: array [0 .. 1000] of TJobInfo2;
BytesNeeded, NumJobs: Dword;
begin
pi2.pPrinterName := 'Microsoft XPS Document Writer';
if OpenPrinter(pi2.pPrinterName, hPrinter, 0) then
begin
while true do
begin
WaitForPrinterChange(hPrinter, PRINTER_CHANGE_ADD_JOB);
if EnumJobs(hPrinter, 0, 1000, 2, @Jobs, SizeOf(Jobs), BytesNeeded,
NumJobs) then
begin
if NumJobs <> 0 then
begin
with Jobs[NumJobs - 1] do
showmessage(StrPas(pUserName) + StrPas(pMachineName) +
StrPas(pDocument));
end;
end;
end;
end;
end;

可监控的打印机状态参数记录:

_JOB_INFO_2W = record
JobId: DWORD;
pPrinterName: LPWSTR;
pMachineName: LPWSTR;
pUserName: LPWSTR;
pDocument: LPWSTR;
pNotifyName: LPWSTR;
pDatatype: LPWSTR;
pPrintProcessor: LPWSTR;
pParameters: LPWSTR;
pDriverName: LPWSTR;
pDevMode: PDeviceModeW;
pStatus: LPWSTR;
pSecurityDescriptor: PSECURITY_DESCRIPTOR;
Status: DWORD;
Priority: DWORD;
Position: DWORD;
StartTime: DWORD;
UntilTime: DWORD;
TotalPages: DWORD;
Size: DWORD;
Submitted: TSystemTime; { Time the job was spooled }
Time: DWORD; { How many seconds the job has been printing }
PagesPrinted: DWORD;
end;

转载于:https://www.cnblogs.com/hnxxcxg/p/4447758.html

1. 该软件无须安装,直接将软件包解压缩到一个目录下,运行PrinterMon.exe程序即可。 2. 如果需要该程序随系统启动而自动启动,则在软件的“打印机列表”节点下, 勾选“用户登录系统后自动运行打印机监视程序”项即可。 3. 该软件除了可以监视本地的打印机之外,还可以监视网络中其他共享的打印机。 只要利用“添加打印机”中提供的三种方法之一枚举相关的打印机, 添加到监控打印机列表中即可。 4. 监控网络上的打印机时,要提供正确的登录认证设置,保证网络可连通并具有合适的权限。 5. 注意防火墙的设置,保证可以正常访问网络上的打印机。 6. 该软件为完全免费,除软件主窗口下部的信息区会尝试连接我们的网站 (http://www.3000soft.net)获取最新产品资料之外,不含有任何收集用户资料或其它恶意的代码。 任何情况下,我们都不为可能造成的任何可以预见或不可预见的损失承担责任。 如果您持有怀疑或担心,请选择不运行此软件,立即删除这些文件。 7. 该软件主要为企业管理者提供打印机、纸张、文件档案等公司资源的监控服务。 因为网络和系统的复杂性,监视到的打印作业资料不表示一定准确,请不要盲目地 依此作出什么结论性的判断。 8. 请不要超越您自己的权限与职责的范围去使用该软件,使用该软件的一切可能后果请自负。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值