c源码打印机状态(c#获取打印机状态)
本文目录一览:
如何用 c语言 驱动打印机
DOS 命令 PRINT 可以打印 文本文件。
例如:
PRINT /D:\\MYNETWORK\PS_Printer A.IN
/D:\\MYNETWORK\PS_Printer -- 打印设备,我的网络上的打印机
A.IN -- 要打的文件名,可以含路径
C 语言中函数 system("命令字符串");
把DOS命令字符串填入,就执行DOS命令。
C语言打印机输出函数
c语言不能直接命令打印机。首先要明白几个问题
1、打印机的指令时谁发出的
。这是个常识问题,都会说打印机当然是“微机”控制,指令当然由计算机发出;
2、要清楚计算机的指令时什么类型的语言编译的,微机通常的指令是汇编语言(低级语言),而C语言是高级语言,要明白两者之间的关系和由C语言转化成汇编语言的过程和彼此在计算机中存储的位置。
3、要明白打印机的工作原理。
综上:C语言中的printf函数是不能直接命令打印机的。。
*要清楚的明白,就得查清楚2中的一些关系和明白打印机的原理。
*学了微机原理和接口技术应该会有帮助。
C++有什么接口可以获取打印机状态?
下面是我用过c源码打印机状态的针式打印机状态测试函数。环境为c源码打印机状态:DOS, Turbo C 2.0 编译。
你所说的 USBc源码打印机状态,我不懂。家里使用过喷墨打印机,使用 USB 接口,明确标示:不支持 DOS。
C++ 语言,不懂。正想从 C 转到 C++。
int far dyhztcs ( ) /* 打印机状态测试 */
{
/* DOS.H 中定义的寄存器数据结构和共用体变量
struct WORDREGS {
unsigned int ax, bx, cx, dx, si, di, cflag, flags;
};
struct BYTEREGS {
unsigned char al, ah, bl, bh, cl, ch, dl, dh;
};
union REGS {
struct WORDREGS x;
struct BYTEREGS h;
};
使用 DOS.H 后,这部分可以不用。
*/
union REGS reg; /* 定义共用体变量 */
int dyjzt; /* 打印机状态 */
dyjzt = 0;
/* 功能号 2;取打印机状态 */
reg.h.ah = 2; /* 寄存器 AX 的高位 AH */
reg.h.al = 0; /* 寄存器 AX 的低位 AL */
reg.h.dh = 0; /* 寄存器 DX 的高位 DH */
reg.h.dl = 0; /* 寄存器 DX 的低位 DL */
int86 ( 0x17, reg, reg ); /* 调用 17 号中断 */
if ( ( reg.h.ah 0x10 ) != 0 ) /* 选择的打印机 */
if ( ( reg.h.ah 0x40 ) == 0 ) /* 确认;返回寄存器 AX 的 AH 第六位 */
dyjzt = 1; /* 就绪时为 0,而断电时为 1 */
if ( ( reg.h.ah 0x80 ) == 0 ) /* 空闲 */
dyjzt = 0;
return ( dyjzt );
}
请教C语言编程能否控制打印机
控制一个外设从原理上说其实很简单,两个主要步骤:
1.编写设备和主机通讯接口的驱动,提供基本的数据交互接口
2.熟悉设备的通讯协议,基于1中的接口,按照协议交互数据即可
所谓协议,其实就是两台机器之间子集定义的一套语言,最简单的例子就是:
A发1,B收到1时知道A是处于运行状态,那么这个数字1就可以看成是A和B之间的一个协议,因为它们双方都懂得1的含义