如何检测打印机是否联机

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

使用专用打印机 ,没有驱动程序,我用直接往lpt1写的方法打印,如果打印机联接正常, 打印的数据会正常输出,但是当打印机未联机或打印机没开,程序打印时就会死机,只能按Ctrl+Alt+Del强行终止 。有什么办法可以判断打印机状态,或是如何设置一个timeout时间来终止 打印 ?

方法如下:

bool LptPrint(char prtdata[],int prtlen,int timeout)

{

HANDLE h;

DWORD n;

COMMTIMEOUTS t;

bool result;

h = CreateFile("lpt1", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);

if (h == INVALID_HANDLE_VALUE){

AfxMessageBox("Can not open lpt1");

return false;

}

t.ReadIntervalTimeout = 0;

t.ReadTotalTimeoutMultiplier = 0;

t.ReadTotalTimeoutConstant = 0;

t.WriteTotalTimeoutMultiplier = timeout * 1000 / prtlen;

t.WriteTotalTimeoutConstant = 0;

if (!SetCommTimeouts(h,&t)){

AfxMessageBox("SetCommTimeout error");

return false;

}

result = true;

if (!WriteFile(h,prtdata,prtlen,&n,NULL)){

AfxMessageBox("Print error");

result = false;

}

CloseHandle(h);

return result;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航