//C#控制打印机(直接发送打印机命令到打印机)
//一个打印机控制类,很有用的,其中使用了windows api控制lpt端口,对条码打印机的控制方法如下:将打印机的命令写到一个文件里,再使用之。
//该实例从txt文档读取指令然后写入到LPT1端口
//代码:
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();
}

C#通过LPT控制打印机——txt文档读取指令打印条码相关推荐

  1. Python之数据采集与文档读取练习

    1. urllib和BeautifulSoup 1.1 urllib的基本用法 urllib是Python 3.x中提供的一系列操作URL的库,它可以轻松的模拟用户使用浏览器访问网页. 使用步骤: 导 ...

  2. C语言学生管理系统(将数据保存至TXT文档)附源码

    C语言学生管理系统(将数据保存至TXT文档) 在大一学习完C语言之后,回家遇到疫情,便有了用C语言写一个学生管理系统的想法,在家花费了一些时间,刚开始写了一点,后来可能是因为学艺不精就没写完,开学到现 ...

  3. C语言 读取txt文档按行读取到新的txt文档

    如下图data.txt,需要把数据按17行读取到自动命名新建的txt文档里: 1-17行     1.txt 18-34行   2.txt -- #include <stdio.h> #i ...

  4. C语言读取txt文档中的数据

    1.说明    txt文档中的数据格式:前后数据用空格隔开:    数据来源:matlab读取彩图的R.G.B三层的像素值,分别存放在三个txt文档中,用C读取到一维数组.    动态申请数组,还是需 ...

  5. c# 读取记事本txt文档到DataTable中

    有时候我们仅仅需要用到简单的几个数据,没有必要在数据库中建立单独的表去存储这些数据然后去连接数据库等等. 例如:我们的程序中只需要给几个人定时发送邮件,而这几个人的邮件地址则可以放到txt文档中,然后 ...

  6. python逐行读取txt写入excel_用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)...

    前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过 ...

  7. 怎么退出python命令行cd找到txt文档_《python怎么读取txt文件》

    python怎么创建一个txt文件 python怎么创建txt文件的方法. 如下参考: 1.首用内置的空闲编辑器编辑(单击并选择copy),如下图所示. 2.您可以下载记事本和其他编辑软件,以支持多种 ...

  8. matlab 如何读取二进制、十六进制txt文档

    本方法同样适合读取十六进制和二进制以外的其他进制文件, txt使用一个最简单的命令就可以读取 textread 这是一个十分有用,简便的函数(对于fopen fscanf而言) 读取二进制txt文件: ...

  9. matlab通过变量调用txt文件路径,MATLAB使用load函数读取txt文档

    MATLAB在数据处理方面应用非常广泛.在众多的专业领域里,把各种手段获取的数据存入txt文档中非常常见.如果txt文件中数据为矩阵形式,通常可以采用简单的load命令来读取数据,然后在MATLAB中 ...

  10. python读取文件夹下所有txt_Python读取文件夹中TXT文档

    1.读取文件夹中多个txt文档 dest = "sougou" #文档的路径 for root, dirs, files in os.walk(dest): for OneFile ...

最新文章

  1. mysql存储过程查询实例_mysql存储过程查询实例
  2. cout设置输出数据不显示科学计数法
  3. ios:ScrollView联动效果
  4. SegAttnGAN: Text to Image Generation with Segmentation Attention 论文解读
  5. a*算法的优缺点_五种聚类算法一览与python实现
  6. Python基础教程:菱形继承问题
  7. Java面试题系列之Java基础类库(一)
  8. idea中开启Run Dashboard
  9. 亚马逊标题自动抓取_如何为您的家人提供自动Amazon礼品卡津贴
  10. Linux下DRBD配置
  11. React+Webpack+ES6 兼容低版本浏览器(IE9)解决方案
  12. 数组成员是函数java_在Laravel 5.6中调用数组上的成员函数links()
  13. 深度学习入门系列(总结篇)
  14. python爬虫网页崩溃怎么处理_python程序爬虫总是崩溃
  15. svn clean up 特别慢
  16. 996下的最后一根稻草
  17. linux命令查询端口号,linux查询端口号(linux查看端口的命令)
  18. Web全栈~09.JavaScript入门
  19. NCQ TCQ 什么是NCQ 什么是TCQ 区别
  20. [刷题]leetcode\189_轮转数组

热门文章

  1. 郑大第九届校赛正式赛(1819: 加加加!(油))
  2. 原神个人测评:不好玩的精品
  3. html5微博个人资料页面,仿新浪微博个人主页html网站模板
  4. kX3552 + HiFi级播放器 + wifi无线保真= 实战HiFi音乐娱乐欣赏
  5. es6入门到五连绝世之双杀(double kill)
  6. 量子统计的正则分布和巨正则分布计算思路过程
  7. nexus-3.37.3 报INSTALL4J_JAVA_HOME to point to a suitable JVM
  8. 开源的物理引擎_开源物理引擎
  9. duilib开发(十二):使用自定义控件
  10. win10 win11 网络共享显示网络路径不存在时解决办法