医院该如何实现打印机监控软件

我现在想编一个程序,它能对打印机进行监控,显示被打印文件(如word文档)的页数和份数.请问应如何编写,C/C++类库中有这方面的函数吗?
全部答案(共1个回答)
如何监控打印机的打印队列?
一、API介绍:
API是Application
Programming
Interface的缩写,也就是应用程序调用系统功能的接口。Windows
API主要包括系统定义的函数、消息及与之相关的数据类型。我们使用各种开发工具归根结底都是和API打交道。
二、与打印状态相关的API:
获取打印作业信息
OpenPrinter
获取指定打印机的句柄
中,增加了一批全新的、专门用来处理打印机及打印机队列状态的
函数。在这里,将通过
OpenPrinter
EnumJobs,来确定打印机打印作业状态所需的信息。
OpenPrinter,用来获取给定打印机的句柄,通过该句柄可以实现对相应打印机的操作。
EnumJobs,用来列出所指定打印机上正在打印的作业信息,这里给定打印机的引用就是通过使用上述OpenPrinter函数反馈回来的打印机句柄。
EnumJobs函数介绍:
pcReturned
API函数EnumJobs用于列举给定打印机当前所有正在打印的任务状态信息,该函数可以列举给定打印机简要的或者详细的(Level决定)队列任务状态信息。在引用该函数时,通常先把cbBuf变量设置为0,以获得打印机队列任务的字节数,该字节数存储在pcbNeeded里以决定pJob变量大小,然后再次引用该函数,获得打印机队列任务的详细信息。
打印机句柄。
统计打印机队列任务数的起始点,0表示从第一个任务开始统计列举所有的打印任务。
需要列举的最大打印任务数。一般设为127。
标示存储在pJob里的信息格式。如果该值为1,数据以JOB_INFO_1的格式存储;如果该值为2,数据以JOB_INFO_2的格式存储。
数组变量,保存打印任务的所有信息;cbBuf设为0时,该值也为0。Level变量的值决定pJob的数据格式(JOB_INFO_1
JOB_INFO_2)
该值通常为0。
存储打印机里打印任务的字节数。
pcReturned
用来存放打印任务数量的变量。
通过上表可以看出,这两个API函数只用使用在Windows
NT环境中。
三、开发工具:
Builder作为快速开发Windows平台下应用程序的工具,已经为越来越多的开发者采用。但是,如果要开发出专业的Windows应用相关信息,还需要使用大量的Windows
API函数,以下是笔者应用C++
Builder以及Windows
API函数来实现对打印机状态的时时监控。
Builder的理由:
一:由于Windows
都是用C或C++编写的,C++
Builder更易于底层应用。
Builder对于Windows
API的引用更加简单,这一点是Visual
Basic所欠缺的。
四、程序实例:
1、启动C++
Builder程序,新创建一个工程;
2、进入工程,在当前窗体分别添加一个CheckListBox控件、一个Timer控件;
3、在CheckListBox控件的Item属性添加打印机名称列表(假设在网络中HostPrinter主机上有三台打印机Printer1、Printer2、Printer3),则Item项目里内容格式为:\\HostPrinter\Printer1、\\HostPrinter\\Printer2、\\HostPrinter\\Printer3
4、Timer的Interval属性设置为60000(一分钟),在Timer的OnTimer事件加入如下代码:
//打印机句柄
JOB_INFO_2
//保留打印作业详细信息
size=sizeof(jobs);
JOB_INFO_2
*jobs1=NULL;
//动态数组用于对大于size的任务进行操作
pcbNeeded=0;
//所有打印字节数
actNeed=0;
pcReturned=0;
//打印任务数
//指向打印机或机器名
//获得打印机句柄返回值
//获得打印机任务返回值
StartTime=0;
//任务开始时间
NowTime=0;
//当前时间
TotalTime=0;
//任务停留时间
InitCount=15;
//设定的打印队列数量--------报警底线
InitTime=10;
//设定的打印队列事件--------报警底线(分钟)
PrintCount
=CheckListBox1->C
//..............取得列表里的打印机
str=CheckListBox1->Items->Strings[i]
length=str.Length()
//................字符串到字符的转换,
StrPLCopy(buf,str,length);
//................获得打印机句柄
OpenPrinter(buf,
&hPrinter,
//................获得打印任务数
EnumJobs(hPrinter,
&pcbNeeded,
&pcReturned);
//必要的一步,先取出打印机里任务的字节数,然后决定jobs1变量大小。//--------------------------①
//.................重定义Jobs1,
根据pcbNeeded决定使用哪个变量
(pcbNeeded>size)
actNeed=pcbN
JOB_INFO_2[actNeed];
EnumJobs(hPrinter,
2,(LPBYTE)jobs1,
&pcbNeeded,
&pcReturned);
startTime=SystemTimeToDateTime(jobs1[0].Submitted);
//------------------②
EnumJobs(hPrinter,
2,(LPBYTE)jobs,
&pcbNeeded,
&pcReturned);//-----------------------------③
(pcReturned>0)
startTime=SystemTimeToDateTime(jobs[0].Submitted);
//.................pcbNeeded>size结束
//................如果队列里有打印任务,比对数量与时间
(pcReturned>0)
//.................时间转换,计算一天内的时间差
//............时间比较运算处理;
//............时间转换StartTime转换成分钟
DecodeTime(Now(),Hour1,
Sec,MSec);
NowTime=Hour1*60+Min1;
TotalTime=NowTime-StartT
//依据条件判断是否报警
((pcReturned>InitCount)
|(TotalTime
>InitTime))
pcReturned=0;
pcbNeeded=0;
//..........................pcReturned>0结束
}//....................................................for结束
5、编译并运行上述程序:
①程序中,此处的获得打印机任务的目的主要是获得打印机作业的字节数------
pcbNeeded,该变量里字节的大小,将决定进一步获得打印机里作业的状态时所用的变量是Jobs还是Jobs1。
②当pcbNeeded>size,给Jobs1分配空间,然后获得打印机当前作业的状态。
③当pcbNeeded<size,用Jobs作为变量,获得当前打印机作业状态。
Builder编程监控打印机队列状态:
只需要转换成vc++即可
注:②、③参数引用与①不同。
五、应用分析:
可以说IT技术在制造业得到了广泛的应用,而打印控制与监控则是制造业中众多应用中的较为典型的应用。通常,在生产制造过程中,都有很多打印机用于打印生产排序单、装配单、铭牌、标签等等。因此打印机的时时状态(缺纸、墨尽、卡纸)在这里就显得尤为重要了,如果不能及时的监控到打印机的状态势必会影响生产的正常持续运行。所以为了保证生产正常运行拥有一套用于监控打印机时时状态的程序是很有必要的。
查打印机说书,可能是打印机驱动安装问题或打印机自身问题。
清华大学出的,钱能的教材比较不错的,你可以看看.
另外,由于看起来你好象是初学者,其实一本比较通俗的大学教材都是可以的.
不知道你有没有学过其他计算机语言,如果...
检查打印连接线
重装打印驱动程序
三星打印机卡纸
首先,要将哂鼓取出来,看一个卡的走向
卡纸主要有以下几个原因,另外在取纸的时候需要注意的一些问题。
   1.纸卡在刚刚进入给纸滚轮而未进入其他...
这是个涉及GDI操作的程序。
其功能很像Visio绘图软件。
而Visio是一个公司做的。这岂是一个人可以完成的事情?
不过,到可以探讨一下其实现的思路。
答: 唐筛的结果只有50%的准确性,所以高危和低危都不一定保证没事,所以不要过分的相信这个,开开心心的度过孕期,和宝宝愉悦的胎教交流是最重要的。
答: 如果你理解能力强考数据库,其中比如关系数据库之类的需要去领悟
如果你记忆能力强考网络,各种各样的名词,背下来就得分。
还有官方指定的教材要有,上机最好做一做南开...
答: 新年好!首先,你必须了解计算机的组成和结构以及操作系统的运作原理,这是基础
如果你想学习开发多线程、WINDOWS应用、动态链接库、WINDOWS组件的话,建议...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
CLEAR柯丽尔全院医疗自助打印服务系统
下载积分:1000
内容提示:CLEAR柯丽尔全院医疗自助打印服务系统
文档格式:PDF|
浏览次数:274|
上传日期: 18:30:32|
文档星级:&#xe60b;&#xe60b;&#xe60b;&#xe60b;&#xe60b;
全文阅读已结束,如果下载本文需要使用
&#xe71b; 1000 积分
&#xe602;下载此文档
该用户还上传了这些文档
CLEAR柯丽尔全院医疗自助打印服务系统
关注微信公众号君,已阅读到文档的结尾了呢~~
医院电子化纸张打印输出的需求与管理
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
医院电子化纸张打印输出的需求与管理
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口医院处方打印机具体怎么操作_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
医院处方打印机具体怎么操作
我想问询一下,我这里是一家民营医院现在处方都是手写处方院长现在想要和公立医院一样要安装 机打处方不光只买一个打印机这么简单的事情吧是不是还要在装一套系统啊~~到底具体怎么样的
而且价格是什么样子的~~谢谢;
我有更好的答案
就是买一台普通打印机就可以了 我看过一些医院的机器 都是使用的小型打印机
大部分是HP07等机器 几百元一台打印的时候 自己可以设置一个模板 打印即可大医院确实有一个系统
那是他们查询像药品价格等详细记录等等的 只要勾选一下 然后就可以输出打印
系统价格就不清楚了
应该2-3000块一年吧
不过要把那些药品录进去确实是一个不小的活儿
系统可以共用的
值得注意的是购买软件的时候
要问一下 这个软件可以多少人共用
以前我们办公室使用的财务软件 只能同时上3个人
有一些不方便
采纳率:37%
看你准备在哪买了,有二道贩子
为您推荐:
其他类似问题
您可能关注的内容
打印机的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;

我要回帖

 

随机推荐