Halcon机器视觉论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2163|回复: 11
收起左侧

[已解决] C#如何打印输出

[复制链接]
  • TA的每日心情
    害羞
    2018-9-4 22:29
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    1

    主题

    6

    帖子

    552

    积分

    Rank: 8Rank: 8Rank: 8Rank: 8

    积分
    552

    切换助手验证会员

    发表于 2016-11-1 20:05:10 | 显示全部楼层 |阅读模式

    超级VIP |主题 1|帖子 6|积分 552

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
    C#如何能将字符串数据通过并口发送出去??
    比如VB可以以下使用:
    Open "LPT1" For Output #1
    Print #1,Text3.Text
    Close #1

    C#中有什么简便的方式吗?

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    耍酷
    昨天 16:46
  • 签到天数: 636 天

    连续签到: 23 天

    [LV.9]以坛为家II

    353

    主题

    1357

    帖子

    5261

    积分

    Rank: 9

    积分
    5261

    突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

    发表于 2016-11-1 20:23:46 | 显示全部楼层

    管理员 |主题 353|帖子 1357|积分 5261

    回帖奖励 +5 视觉币

    查看本论坛写的C#串口程序,看看怎么发送数据的
    链接:http://pan.baidu.com/s/1bSAjHO 密码:135d
    无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系

    该用户从未签到

    0

    主题

    6

    帖子

    555

    积分

    Rank: 6Rank: 6

    积分
    555
    发表于 2016-11-2 10:56:40 | 显示全部楼层

    黄金VIP |主题 0|帖子 6|积分 555

    回帖奖励 +5 视觉币

    C#中有串口控件,但是没有并口控件,通常使用并口通讯时通过接口调用API函数进行通讯
    [DllImport( "inpout32.dll ",   EntryPoint   =   "Out32 ")]
        public   static   extern   void   Output(int   adress,   int   value);

      [DllImport( "inpout32.dll ",   EntryPoint   =   "Inp32 ")]
        public   static   extern   int   Input(int   adress);   
    或者调用kernel32.dll进行读写。

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-9-4 22:29
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    1

    主题

    6

    帖子

    552

    积分

    Rank: 8Rank: 8Rank: 8Rank: 8

    积分
    552

    切换助手验证会员

     楼主| 发表于 2016-11-2 21:14:16 | 显示全部楼层

    超级VIP |主题 1|帖子 6|积分 552

    已经作出来了测试程序,测试成功。将Textbox内的字符串数据通过并口发送给条码打印机。代码如下
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Linq;
    7. using System.Text;
    8. using System.Windows.Forms;
    9. using System.Runtime.InteropServices;
    10. using System.IO;
    11. using Microsoft.Win32.SafeHandles;

    12. namespace LPTPrint
    13. {
    14.     public partial class Form1 : Form
    15.     {
    16.         public Form1()
    17.         {
    18.             InitializeComponent();
    19.         }

    20.         [DllImport("kernel32.dll")]
    21.         private static extern int CreateFile(
    22.         string lpFileName,
    23.         uint dwDesiredAccess,
    24.         int dwShareMode,
    25.         int lpSecurityAttributes,
    26.         int dwCreationDisposition,
    27.         int dwFlagsAndAttributes,
    28.         int hTemplateFile
    29.         );
    30.         [DllImport("kernel32.dll")]
    31.         private static extern bool CloseHandle(
    32.         int hObject
    33.         );

    34.         private const uint GENERIC_WRITE = 0x40000000;
    35.         private const int OPEN_EXISTING = 3;

    36.         private void button1_Click(object sender, EventArgs e)
    37.         {
    38.             int hPort = CreateFile("LPT1", GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
    39.             System.IntPtr hPortP = new IntPtr(hPort);//定义一个IntPtr对象并初始化,用于对句柄操作。        
    40.             SafeFileHandle sfHandle = new SafeFileHandle(hPortP, true);//因为用hPortP给出警告。      
    41.             FileStream fs;
    42.             fs = new FileStream(sfHandle, FileAccess.Write, 1);//利用安全句柄和写模式实例一个文件流。        
    43.             StreamWriter writer = new StreamWriter(fs);//定义一个写入流进行向LPT1写入数据。        
    44.             writer.AutoFlush = false;//不让自动清空        
    45.             writer.WriteLine(textBox1.Text);//把数据(字符串)写入到LPT1。      
    46.             writer.Flush();
    47.             writer.Close();

    48.         }
    复制代码

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    该用户从未签到

    1

    主题

    16

    帖子

    710

    积分

    Rank: 6Rank: 6

    积分
    710
    发表于 2016-11-7 10:05:56 | 显示全部楼层

    黄金VIP |主题 1|帖子 16|积分 710

    回帖奖励 +5 视觉币

    1. using System;
    2. using System.Diagnostics;
    3. using System.Runtime.InteropServices;
    4. using System.Text;
    5. using System.Windows.Forms;

    6.   
    7. namespace ParallelPort
    8. {
    9.   public partial class Form1 : Form
    10.   {
    11.     const uint GENERIC_READ = 0x80000000;
    12.     const uint GENERIC_WRITE = 0x40000000;
    13.     const uint FILE_ATTRIBUTE_NORMAL = 0x80;
    14.   
    15.     #region win32 API
    16.     [DllImport("kernel32.dll ")]
    17.     private static extern int CreateFile(
    18.       string lpFileName,
    19.       uint dwDesiredAccess,
    20.       int dwShareMode,
    21.       int lpSecurityAttributes,
    22.       int dwCreationDisposition,
    23.       uint dwFlagsAndAttributes,
    24.       int hTemplateFile
    25.       );
    26.   
    27.     [DllImport("kernel32.dll ")]
    28.     private static extern bool WriteFile(
    29.       int hFile,
    30.       byte[] lpBuffer,
    31.       int nNumberOfBytesToWrite,
    32.       ref int lpNumberOfBytesWritten,
    33.       int lpOverlapped
    34.       );
    35.   
    36.     [DllImport("kernel32.dll ")]
    37.     private static extern bool DefineDosDevice(
    38.     int dwFlags,
    39.     string lpDeviceName,
    40.     string lpTargetPath);
    41.   
    42.     [DllImport("kernel32.dll ")]
    43.     private static extern bool CloseHandle(
    44.       int hObject
    45.       );
    46.     [DllImport("kernel32.dll ")]
    47.     private static extern bool ReadFile(
    48.       int hFile,
    49.       byte[] lpBuffer,
    50.       int nNumberOfBytesToRead,
    51.       ref int lpNumberOfBytesRead,
    52.       int lpOverlapped
    53.       );
    54.     #endregion

    55.   
    56.     public Form1()
    57.     {
    58.       InitializeComponent();
    59.     }
    60.   

    61.     private void button1_Click(object sender, EventArgs e)
    62.     {
    63.       int iHandle = -1;
    64.       try
    65.       {
    66.         int i = 0;
    67.         //创建实例
    68.         DefineDosDevice(0x00000001, "LptPortName",@"\Device\Parallel0");
    69.         iHandle = CreateFile(@"\\.\LptPortName",GENERIC_READ | GENERIC_WRITE, 0, 0, 3, FILE_ATTRIBUTE_NORMAL, 0);
    70.         if (iHandle !=-1)
    71.         {
    72.           byte[] mybyte = new byte[3]{ 0x12, 0x14, 0x14 };//要发送的命令(16进制)
    73.           WriteFile(iHandle, mybyte, mybyte.Length, ref i, 0);
    74.           byte[] mybyte1 = new byte[3];
    75.           string content = String.Empty;
    76.           int j = 0;
    77.           ReadFile(iHandle, mybyte1, 3, ref j, 0);
    78.           if (mybyte1 != null)
    79.           {
    80.             foreach(var tempByte in mybyte1)
    81.             {
    82.               content += tempByte.ToString();
    83.             }
    84.           }               
    85.           MessageBox.Show(content);//获取的状态值
    86.         }
    87.         else
    88.         {
    89.           MessageBox.Show("创建文件失败!");
    90.         }
    91.       }
    92.       catch(Exception ex)
    93.       {
    94.         MessageBox.Show(ex.Message);
    95.       }
    96.       finally
    97.       {
    98.         if (iHandle > 0)
    99.         {
    100.           CloseHandle(iHandle);
    101.         }
    102.       }
    103.     }
    104.   }
    105. }
    复制代码

    点评

    这个链接你看下吧,  详情 回复 发表于 2016-11-7 10:06

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-9-13 17:10
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    0

    主题

    45

    帖子

    555

    积分

    Rank: 5Rank: 5Rank: 5

    积分
    555
    发表于 2017-4-21 08:40:17 | 显示全部楼层

    部门总监 |主题 0|帖子 45|积分 555

    回帖奖励 +5 视觉币

    原来c#打印机可以这么玩!!!:P

    发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    Halcon鸟叔机器视觉1鸟叔机器视觉 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver| Halcon机器视觉论坛  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by Discuz! X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表