基恩士pda开发指南

您所在的位置:网站首页 基恩士扫码枪网口怎么连接 基恩士pda开发指南

基恩士pda开发指南

2023-09-18 14:10| 来源: 网络整理| 查看: 265

PDA并不神秘,或者很简单

基恩士官网文档:https://www.keyence.com.cn/support/user/bt/download/btw/index.jsp

基恩士 做的很好的地方就是在开发上 给了我们十分详细的文档说明,从而可以顺利的搭建好开发环境。

1,我们需要做的事情 其实很简单,要先拿到 基恩士 提供给我们的dll文件,如下所示:(至于这些dll的作用,那你需要慢慢去看文档了) 在这里插入图片描述

2, 然后我们需要 去 基恩士官网下载 ( https://www.keyence.com.cn/support/user/bt/download/btw/index.jsp )一个文件,如下。我们主要看这个文件就好了,它会一步步带我们 搭建好 开发环境。

在这里插入图片描述 3, 具体代码如下所示: (主要作用 是 比对两次扫描结果是否相同。) 下面的代码中就用到了基恩士的sdk,然而这样子程序运行起来之后,基恩士自己的扫描键会失灵。 所以尽量少用SDK . 在这里插入图片描述

using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using System.IO; using Bt.ScanLib; using Bt; namespace keyencePDA1 { public partial class Form1 : Form { // 消息窗口 MsgWindow MsgWin; // 窗体 public static Form1 _MainForm1Instance; // 应用执行路径 public static String AppPath = ""; public static string FirstBarCode=string.Empty; public static string SecondBarCode = string.Empty; public static Int32 ScanCount = 0; public Form1() { InitializeComponent(); // 生成消息窗口 } [DllImport("coredll.dll", EntryPoint = "DeleteObject")] public static extern bool DeleteObject(IntPtr hObject); private void Form1_Load(object sender, EventArgs e) { // 画面尺寸调整 if (System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width == 240) { resolution.ScreenSize.VGAtoQVGA(this); } // 不显示窗体的最大化,最小化按钮 this.MaximizeBox = !this.MaximizeBox; this.MinimizeBox = !this.MinimizeBox; _MainForm1Instance = this; // 取得执行路径 String path = this.GetType().Assembly.GetModules()[0].FullyQualifiedName; Int32 en = path.LastIndexOf("\\"); AppPath = path.Substring(0, en); } private void Form1_Closed(object sender, EventArgs e) { if (Form1._MainForm1Instance != null) { Form1._MainForm1Instance.Dispose(); } } //扫描按钮点击 private void button1_Click(object sender, EventArgs e) { this.MsgWin = new MsgWindow(); Int32 ret = 0; String disp = ""; try { //开启扫描 ret = Bt.ScanLib.Control.btScanEnable(); if (ret != LibDef.BT_OK) { disp = "btScanEnable error ret[" + ret + "]"; //MessageBox.Show(disp, "错误"); ScanCopmareInit( disp); ret = Bt.ScanLib.Control.btScanDisable(); if (ret != LibDef.BT_OK) { disp = "btScanDisable error ret[" + ret + "]"; ScanCopmareInit(disp); //MessageBox.Show(disp, "错误"); } System.Threading.Thread.Sleep(1000); MsgWin.Dispose(); return; } ret = Bt.ScanLib.Control.btScanSoftTrigger(1); if (ret != LibDef.BT_OK) { disp = "btScanSoftTrigger error ret[" + ret + "]"; //MessageBox.Show(disp, "错误"); ScanCopmareInit(disp); ret = Bt.ScanLib.Control.btScanDisable(); if (ret != LibDef.BT_OK) { disp = "btScanDisable error ret[" + ret + "]"; ScanCopmareInit(disp); //MessageBox.Show(disp, "错误"); } System.Threading.Thread.Sleep(1000); MsgWin.Dispose(); return; } } catch (Exception ex) { //MessageBox.Show(ex.ToString()); ScanCopmareInit(ex.ToString()); } } //--------------------------------------------------------------------------------- // MessageWindow类 这个类 主要用于获取 扫描到的条码数据 //--------------------------------------------------------------------------------- public class MsgWindow : Microsoft.WindowsCE.Forms.MessageWindow { public MsgWindow() { } protected override void WndProc(ref Microsoft.WindowsCE.Forms.Message msg) { switch (msg.Msg) { case (Int32)LibDef.WM_BT_SCAN: // 读取成功的场合 if (msg.WParam.ToInt32() == (Int32)LibDef.BTMSG_WPARAM.WP_SCN_SUCCESS) { ScanCount = ScanCount + 1; if (ScanCount > 2) { ScanCount = ScanCount - 2; } ScanData_ikkatu(); } break; } base.WndProc(ref msg); } /******************************************************************************** * 功能 :一次性取得读取到的条码数据。 * API :btScanGetStringSize, btScanGetString ********************************************************************************/ public static void ScanData_ikkatu() { Int32 ret = 0; String disp = ""; Byte[] codedataGet; String strCodedata = ""; Int32 codeLen = 0; UInt16 symbolGet = 0; try { //----------------------------------------------------------- // 读取(一次性) //----------------------------------------------------------- codeLen = Bt.ScanLib.Control.btScanGetStringSize(); if (codeLen


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3