步骤一:检查打印机指示灯
确保开启打印机电源,并且打印机处于待机准备就绪状态。
打印机指示灯闪烁的处理方法请参考:
HP LaserJet P1007、P1008 激光打印机 - 指示灯闪烁
HP LaserJet P1505、P1505n 激光打印机 - 指示灯闪烁
返回页首
步骤二:清除打印任务
由于打印后台服务程序处理失败而未能够打印的任务,会停留在打印任务列表中,导致打印队列堵塞无法正常打印,打印机状态显示为“脱机”,此时需要清除堵塞的打印任务。
清除打印任务的方法请参考:
清除未完成的打印作业
返回页首
步骤三:检查打印机状态
将打印机 USB连接线连接到电脑,开启打印机电源。
依次点击“开始”→“打印机和传真”。在“打印机和传真”窗口中,找到打印机的图标。
在“打印机和传真”窗口中,右键点击您使用的打印机图标,选择“使用联机打印机”菜单项。如图 1 使用联机打印机所示:
图 1: 使用联机打印机
注 :选择“使用联机打印机”菜单项后,打印机状态由“脱机”改为“准备就绪”。
在“打印机和传真”窗口中,完成设置后打印机图标会显示正确的状态。如图 2 打印机状态所示:
图 2: 打印机状态
注 :正确的打印机状态:“文档”为“0”,“状态”为“准备就绪”。
这时,打印机就能够正常使用了。
#include <sys/waith>
pid_t wait(int statloc);
返回值:若成功则返回终止进程的ID,若出错则返回-1
打印机打印文件,一直是获取状态,原因如下:
1、打印机数据线有有问题,更换新的数据线测试。
2、打印机和电及连接的USB口有问题,更换其它USB口测试。
3、电脑系统有故障,重新安装电脑系统,或更换其它电脑测试。
打印机(Printer) 是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。衡量打印机好坏的指标有三项:打印分辨率,打印速度和噪声。 打印机的种类很多,按打印元件对纸是否有击打动作,分击打式打印机与非击打式打印机。按打印字符结构,分全形字打印机和点阵字符打印机。按一行字在纸上形成的方式,分串式打印机与行式打印机。按所采用的技术,分柱形、球形、喷墨式、热敏式、激光式、静电式、磁式、发光二极管式等打印机。
打印机是由约翰·沃特、戴夫·唐纳德合作发明的。将计算机的运算结果或中间结果以人所能识别的数字、字母、符号和图形等,依照规定的格式印在纸上的设备。打印机正向轻、薄、短、小、低功耗、高速度和智能化方向发展。
互联网络的飞速发展,有人预言无纸时代即将来临,打印机的末日已到。然而全球纸张消费量每年以成倍的速度在增长,打印机的销量以平均接近8%的速度在增加。这一切都预示着打印机不但不会消失,而且会发展越来越来快,应用的领域越来越宽广。从1885年全球第一台打印机的出现,到后来各种各样的针式打印机、喷墨打印机和激光打印机,它们在不同的年代各领风骚,今天让我们寻觅历史的足迹,从技术、品牌与产品、应用市场及目标消费者三个方面,回顾喷墨打印机的光辉历史,同时对喷打未来的发展趋势作简单分析。
获取车辆状态方法如下,经常了解我们的车辆处于什么状态和车辆信息,能够避免不少的麻烦。那么我们应该如何查询车辆状态呢?
1、首先我们可以搜索当地的车管所,例如XX市车管所。下面就会出现“交警支队网上车管所”,点击进入。
2、点击进入交警支队网上车管所网站之后,在该网站的右下角有一个菜单框。菜单框的第一个就是“机动车信息查询”。
3、点击机动车信息查询之后,会让我们输入机动车种类、车辆识别代码、车牌号码,还有验证码。输入完成之后点击查询。
4、信息输入正确的话,我们就可以查询到车辆的各种信息,包括汽车品牌、汽车状态、使用性质、汽车的审验日期、报废日期等等。
5、除此之外,还可以查询到汽车的违法信息,例如,违法行为、违法时间地点、扣分罚款情况等等。
一般用 GetUserName(或 GetUserNameEx )函数可得到当前登陆登陆用户名(但不总会得到,下面会分析),此系统函数在Win95、WinNT 及以后所有 *** 作系统中都可用。代码如下:
BOOL CSecurityTool::GetCurrProcessUser(CString& strName)
{
BOOL bRet(TRUE);
strName = _T("");
DWORD dwSize = MAX_PATH;
TCHAR pszName = new TCHAR[dwSize];
if (!GetUserName(pszName, &dwSize))
{
delete[] pszName;
pszName = new TCHAR[dwSize];
bRet = GetUserName(pszName, &dwSize);
}
strName = pszName;
delete[] pszName;
return bRet;
}
此函数目的准确来说是获取当前线程的用户名(MSDN语:retrieves the user name of the current thread)。如果是NT service(NT服务程序)将此进程启动,得到的结果是NT Service进程的用户名,即“SYSTEM”,而不是登陆用户名;同理,如果此进程是通过CreateProcessAsUser创建的,GetUserName获取的用户将是“AsUser”的用户名。另外,如果当前线程正impersonate其他用户环境(用函数ImpersonateLoggedOnUser可达到此目的),它获取的将是其他用户名。因此,此函数只能在特定环境中才可以获取登陆用户名。
那如何不因进程本身运行环境的不同,而准确地获取登陆用户名呢?
我们首先看看Windows XP *** 作系统,它提供了WTSQuerySessionInformation函数,这个函数可以获取会话(session)相关信息,其中一个用途是获取会话的登陆用户。代码如下:BOOL CSecurityTool::GetLogUserXP(CString& strName)
{
BOOL bRet = FALSE;
strName = _T("");
//for xp or above
TCHAR szLogName = NULL;
DWORD dwSize = 0;
if (WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,
WTS_CURRENT_SESSION,
WTSUserName,
&szLogName,
&dwSize))
{
strName = szLogName;
WTSFreeMemory(szLogName);
bRet = TRUE;
}
return bRet;
}
如果用户还没有登陆,获取的用户名将为空(譬如在NT service程序中)。虽然MSDN中指明WTSQuerySessionInformation可以在win2000 pro 中使用,但由于安装win2000 professional时,terminal service是没有安装的(除非用特殊方法如第三方工具可以安装terminal service),所以调用此函数会失败,需要寻找其他方法。
再看Win2000:查阅了许多资料,未能发现在Win2000中直接获取登陆用户名的系统函数,看来只有曲线救国了。由于Explorerexe进程的用户肯定是当前登陆用户,所以获取到它的用户名就等于获取到登陆用户名。具体实现:首先枚举系统所有进程,找到Explorerexe进程ID,然后通过ID获取此进程的令牌(Token),再获取令牌的用户信息,即为登陆用户名。代码如下://获取win2000登陆用户
BOOL CSecurityTool::GetLogUser2K(CString& strName)
{
BOOL bRet = FALSE;
HANDLE hSnapshot = NULL;
strName = _T("");
__try
{
// Get a snapshot of the processes in the system
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapshot == NULL)
{
__leave;
}
以上就是关于如何获取打印机状态全部的内容,包括:如何获取打印机状态、多进程状态获取由什么函数实现、打印机打印文件怎么一直是获取状态呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)