C#通过LPT1端口控制打印机
//C#控制打印机(直接发送打印机命令到打印机)
//一个打印机控制类,很有用的,其中使用了windows api控制lpt端口,对条码打印机的控制方法如下:将打印机的命令写到一个文件里,再使用之。
//代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace LPTControls
{
public class LPTControls
{
[StructLayout(LayoutKind.Sequential)]
private struct OVERLAPPED
{
int Internal;
int InternalHigh;
int Offset;
int OffSetHigh;
int hEvent;
}
[DllImport("kernel32.dll")]
private static extern int CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);
[DllImport("kernel32.dll")]
private static extern bool WriteFile(int hFile, byte[] lpBuffer, int nNumberOfBytesToWriter, out int lpNumberOfBytesWriten, out OVERLAPPED lpOverLapped);
[DllImport("kernel32.dll")]
private static extern bool CloseHandle(int hObject);
private int iHandle;
//打开LPT 端口
public bool Open()
{
iHandle = CreateFile("lpt1", 0x40000000, 0, 0, 3, 0, 0);
if (iHandle != -1)
{
return true;
}
else
{
return false;
}
}
//打印函数,参数为打印机的命令或者其他文本!
public bool Write(string MyString)
{
if (iHandle != 1)
{
int i;
OVERLAPPED x;
byte[] mybyte = System.Text.Encoding.Default.GetBytes(MyString);
return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);
}
else
{
throw new Exception("端口未打开~!");
}
}
//关闭打印端口
public bool Close()
{
return CloseHandle(iHandle);
}
}
}
//***************************************************************
//使用方法
private void button1_Click(object sender, EventArgs e)
{
LPTControls.LPTControls lpt = new LPTControls.LPTControls();
string mycommanglines = System.IO.File.ReadAllText("print.txt");//print.txt里写了条码机的命令
lpt.Open();
lpt.Write(mycommanglines);
lpt.Close();
}
转载于:https://www.cnblogs.com/Hdsome/archive/2011/06/25/2090294.html
C#通过LPT1端口控制打印机相关推荐
- Web 前端通过调用ActiveX实现LPT1端口小票机打印功能。
最近项目中发现Web前端通过javascript是无法实现调用LPT1端口进行特定格式的打印的.而直接采用浏览器的打印会导致打印的全部为乱码. 后经查阅各方资料可以采用调用ActiveX方法实现小票机 ...
- Windows XP 打印机端口LPT1 响应挂死 解决
1. 从"我的电脑"打开"设备管理器". 在桌面上找到"我的电脑"图标,右键点击该图标并选择 "属性" ,或者选择 &q ...
- 把USB打印机映射到LPT端口
把USB打印机映射到LPT端口(pos小票机测试成功) 2010-12-23 18:11:00| 分类: 編程 | 标签: |字号大中小 订阅 注释: 在DOS命令行下运行以下命令(以下为示例,根据 ...
- c++判断双击间隔_录井工常见故障判断处理
录井工 1.色谱仪鉴定器点不着火的故障现象.原因是什么?如何处理? 故障现象: (1)按动点火开关点火丝不加热,无点火迹象. (2)用点火器或打火机进行手动点火时,无"嘭"的点火声 ...
- Windows蓝屏(Beginning Dump of Physical Memory)
为什么Windows 2000/XP会蓝屏? NT内核的操作系统采用的是分层管理结构(层又称为模式),主要有用户层(User Mode)和内核层(Kernel Mode),我们可以通过下面这个形象的比 ...
- printf,fprintf(stdout,stderr),sprintf等的使用方法及区别
名称 描 述 例 子 stdin 标准输入 键盘 stdout 标准输出 屏幕 stderr 标准错误 屏幕 stdprn 标准打印机 LPT1端口 stdaux 标准串行设备 COM1端口 1,pr ...
- Kali利用msf对MS10_061漏洞进行渗透测试
注意事项: kail首次打开metasploit,会初始化数据,可能会有点慢,请耐心等待! 本文仅供学习漏洞渗透测试,不得用于其他非法用途,否则造成的任何后果自负!!! 1. Metasploit简介 ...
- linux串口输出重定向到文件,DOS 下将屏幕打印输出重定向到指定文件中(或重定向到并口/串口)...
今天突然要用到 pc 的串口发送数据 给单片机,我不想把太多的时间放在 api 上面,想了个简便方法,用两个 C库里的函数 freopen 和 putchar 就可以了 代码如下: #include ...
- XP的常见蓝屏代码和解决方案
XP的常见蓝屏代码和解决方案 1.0x0000000A:IRQL_NOT_LESS_OR_EQUAL◆错误分析:主要是由问题的驱动程序.有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模 ...
- 电脑蓝屏代码大全及解决办法合集
代码 含意 0 0x00000000 作业完成. 1 0x00000001 不正确的函数. 2 0x00000002 系统找不到指定的档案. 3 0x00000003 系统找不到指定的路径. 4 0x ...
最新文章
- 数据中心建设“优劣”在于这几个关键问题
- 大道至简阅读笔记02
- 产品经理跳槽面试大揭秘……
- lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...
- python decimal用法_Python decimal模块使用方法详解
- 解决layui laydate动态创建多个时不起作用点击无效的问题
- 看风水用什么罗盘最好_兰花用什么土最好
- 【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)
- 学习MiniGui之多线程机制【转】
- php数组写杨辉三角java_用java实现杨辉三角的示例代码
- java爬取html过快,需要输入验证码
- 多线程(二)--同步及死锁
- excel报表汇总工具
- python将二维数组升为一维数组 或 二维降为一维
- 企企通持续助力全球管道预制先行者「迈科管道」,二期项目逐步启动
- 阿里云服务器怎么样可以实现 frp 内网穿透
- java计算机毕业设计猫咪伤患会诊复查医疗平台源代码+数据库+系统+lw文档
- FTP服务器vsftpd安装架设
- discuz创始人密码重置教程和uctools工具下载
- Ubuntu18安装Realtek8125b网卡驱动
热门文章
- 逆水寒2021最新服务器,《逆水寒》2021上半年大事记:养娃带娃乐趣多,新职业新玩法不断更新...
- 《MFC添加语音功能》
- 【shell】shell是什么,shell脚本又是什么?
- 腊八节福利送上 , 抽奖活动来啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
- 首都师范 博弈论 2 1 1占优策略与占优策略均衡
- 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
- 戴尔笔记本linux不能开机启动,戴尔笔记本无法开机的解决方法
- 跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租......
- linux下smbd服务,Linux下资源共享服务之samba 的讲解!
- Web前端零基础入门HTML5+CSS3学习笔记补充