//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端口控制打印机相关推荐

  1. Web 前端通过调用ActiveX实现LPT1端口小票机打印功能。

    最近项目中发现Web前端通过javascript是无法实现调用LPT1端口进行特定格式的打印的.而直接采用浏览器的打印会导致打印的全部为乱码. 后经查阅各方资料可以采用调用ActiveX方法实现小票机 ...

  2. Windows XP 打印机端口LPT1 响应挂死 解决

    1. 从"我的电脑"打开"设备管理器". 在桌面上找到"我的电脑"图标,右键点击该图标并选择 "属性" ,或者选择 &q ...

  3. 把USB打印机映射到LPT端口

    把USB打印机映射到LPT端口(pos小票机测试成功) 2010-12-23 18:11:00| 分类: 編程 | 标签: |字号大中小 订阅  注释: 在DOS命令行下运行以下命令(以下为示例,根据 ...

  4. c++判断双击间隔_录井工常见故障判断处理

    录井工 1.色谱仪鉴定器点不着火的故障现象.原因是什么?如何处理? 故障现象: (1)按动点火开关点火丝不加热,无点火迹象. (2)用点火器或打火机进行手动点火时,无"嘭"的点火声 ...

  5. Windows蓝屏(Beginning Dump of Physical Memory)

    为什么Windows 2000/XP会蓝屏? NT内核的操作系统采用的是分层管理结构(层又称为模式),主要有用户层(User Mode)和内核层(Kernel Mode),我们可以通过下面这个形象的比 ...

  6. printf,fprintf(stdout,stderr),sprintf等的使用方法及区别

    名称 描 述 例 子 stdin 标准输入 键盘 stdout 标准输出 屏幕 stderr 标准错误 屏幕 stdprn 标准打印机 LPT1端口 stdaux 标准串行设备 COM1端口 1,pr ...

  7. Kali利用msf对MS10_061漏洞进行渗透测试

    注意事项: kail首次打开metasploit,会初始化数据,可能会有点慢,请耐心等待! 本文仅供学习漏洞渗透测试,不得用于其他非法用途,否则造成的任何后果自负!!! 1. Metasploit简介 ...

  8. linux串口输出重定向到文件,DOS 下将屏幕打印输出重定向到指定文件中(或重定向到并口/串口)...

    今天突然要用到 pc 的串口发送数据 给单片机,我不想把太多的时间放在 api 上面,想了个简便方法,用两个 C库里的函数 freopen 和 putchar 就可以了 代码如下: #include ...

  9. XP的常见蓝屏代码和解决方案

    XP的常见蓝屏代码和解决方案 1.0x0000000A:IRQL_NOT_LESS_OR_EQUAL◆错误分析:主要是由问题的驱动程序.有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模 ...

  10. 电脑蓝屏代码大全及解决办法合集

    代码 含意 0 0x00000000 作业完成. 1 0x00000001 不正确的函数. 2 0x00000002 系统找不到指定的档案. 3 0x00000003 系统找不到指定的路径. 4 0x ...

最新文章

  1. 数据中心建设“优劣”在于这几个关键问题
  2. 大道至简阅读笔记02
  3. 产品经理跳槽面试大揭秘……
  4. lte核心网由哪些设备组成_投影地面互动的实现由哪些设备组成?「振邦视界」...
  5. python decimal用法_Python decimal模块使用方法详解
  6. 解决layui laydate动态创建多个时不起作用点击无效的问题
  7. 看风水用什么罗盘最好_兰花用什么土最好
  8. 【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)
  9. 学习MiniGui之多线程机制【转】
  10. php数组写杨辉三角java_用java实现杨辉三角的示例代码
  11. java爬取html过快,需要输入验证码
  12. 多线程(二)--同步及死锁
  13. excel报表汇总工具
  14. python将二维数组升为一维数组 或 二维降为一维
  15. 企企通持续助力全球管道预制先行者「迈科管道」,二期项目逐步启动
  16. 阿里云服务器怎么样可以实现 frp 内网穿透
  17. java计算机毕业设计猫咪伤患会诊复查医疗平台源代码+数据库+系统+lw文档
  18. FTP服务器vsftpd安装架设
  19. discuz创始人密码重置教程和uctools工具下载
  20. Ubuntu18安装Realtek8125b网卡驱动

热门文章

  1. 逆水寒2021最新服务器,《逆水寒》2021上半年大事记:养娃带娃乐趣多,新职业新玩法不断更新...
  2. 《MFC添加语音功能》
  3. 【shell】shell是什么,shell脚本又是什么?
  4. 腊八节福利送上 , 抽奖活动来啦!5本SpringMVC+MyBatis相关、3本Android Studio相关、6本Kafka相关
  5. 首都师范 博弈论 2 1 1占优策略与占优策略均衡
  6. 操作系统面试题(史上最全面试题,精心整理100家互联网企业,面试必过)
  7. 戴尔笔记本linux不能开机启动,戴尔笔记本无法开机的解决方法
  8. 跟零计算机基础的房东女儿讲了一下午的中间人劫持京东事件后,她感激涕零,决定给我免除房租......
  9. linux下smbd服务,Linux下资源共享服务之samba 的讲解!
  10. Web前端零基础入门HTML5+CSS3学习笔记补充