
分享到
新浪微博

分享到
朋友圈

分享到
QQ空間
發布日期:2020-09-29 來源: 本站 閱讀量(2418)
銷邦X5手持終端/銷邦wince手持終端二次開發,掃描頭調用需要調用專門的支持的SDK庫文件,通過銷邦手持終端自定義的API進行獲取手持終端掃描的條碼。 銷邦X5手持機核心代碼如下: namespace SalesPoint.DeviceTest2 { public partial class FrmScan : Form { /// <summary> ///函數名稱:SpGetScanSet ///函數功能:獲取碼制的開啟情況 5600 4313 4500能用,其他的掃描頭暫不支持 /// </summary> /// <param name="dwcode">碼制</param> /// <param name="state">返回參數,0表示關閉,1表示打開</param> /// <param name="dwexten">暫時不使用/param> /// <returns>0--失敗,1--成功</returns> [DllImport("spHardWareInterface.dll", EntryPoint = "SpGetScanSet")] internal static extern int SpGetScanSet(int dwcode, ref byte state, int dwExten); int scanCount = 0; int iDeviceType = 1; //掃描頭類型 public FrmScan() { InitializeComponent(); } //初始化 private void Form1_Load(object sender, EventArgs e) { Sys.Initilize(); //硬件初始化 Thread.Sleep(500); Scanner.Initilize();//掃描頭初始化 this.KeyPreview = true; //一定要設置此項,否則無法掃描 cbbHint.SelectedIndex = 0; cbbHint_SelectedIndexChanged(null, null); cbbScanCode.SelectedIndex = 0; scanCount = 0; lblCount.Text = "已掃描0條"; cbbScanType.Enabled = true; cbbScanCode.Enabled = false; } private void Form1_Closing(object sender, CancelEventArgs e) { Scanner.Deinitilize();//釋放掃描頭 Thread.Sleep(500); Sys.Deinitilize();//釋放硬件 } //鍵盤按鈕事件 private void Form1_KeyDown(object sender, KeyEventArgs e) { string BarcodeStr = string.Empty; if (e.KeyValue == 131)//Scan按鍵 { if(iDeviceType==1)//一維 BarcodeStr = Scanner.StartScan(ScanType.None); else if (iDeviceType == 2)//二維 { //二維碼中如果有漢字的,出現亂碼要如下處理,二維頭(UTF8碼制請改成UTF-8,OENCP碼制請改成GB2312。。。) if (cbbScanCode.SelectedIndex !=-1) { if ("NULL" == cbbScanCode.SelectedItem.ToString()) { BarcodeStr = Scanner.StartScanDim2(ScanType.None); } if ("ASCII" == cbbScanCode.SelectedItem.ToString()) { BarcodeStr = Scanner.StartScanDim2(ScanType.None, Encoding.ASCII); byte[] Tempbuffer = Encoding.ASCII.GetBytes(BarcodeStr); BarcodeStr = Encoding.ASCII.GetString(Tempbuffer, 0, Tempbuffer.Length); } if ("UTF-7" == cbbScanCode.SelectedItem.ToString()) { BarcodeStr = Scanner.StartScanDim2(ScanType.None, Encoding.UTF7); byte[] Tempbuffer = Encoding.UTF7.GetBytes(BarcodeStr); BarcodeStr = Encoding.UTF7.GetString(Tempbuffer, 0, Tempbuffer.Length); } if ("UTF-8" == cbbScanCode.SelectedItem.ToString()) { BarcodeStr = Scanner.StartScanDim2(ScanType.None, Encoding.UTF8); byte[] Tempbuffer = Encoding.UTF8.GetBytes(BarcodeStr); BarcodeStr = Encoding.UTF8.GetString(Tempbuffer, 0, Tempbuffer.Length); } if ("GB2312" == cbbScanCode.SelectedItem.ToString()) { BarcodeStr = Scanner.StartScanDim2(ScanType.None, Encoding.Unicode); byte[] Tempbuffer = Encoding.Unicode.GetBytes(BarcodeStr); BarcodeStr = Encoding.Unicode.GetString(Tempbuffer, 0, Tempbuffer.Length); } } } //顯示條碼 if (BarcodeStr.Trim().Length > 0) { if (scanCount > 100) btnClean_Click(null, null); txtBarcode.Text += BarcodeStr + "
";//一維碼默認碼制 Scanner.ScanSuccessSound(SalesPoint.Device.Scan.Scanner._scansoundtype); //SalesPoint.Device.SoundPlay.Play("\絕對路徑\提示聲音.wav"); //如要換其他聲音文件用此方法 scanCount++; lblCount.Text = "已掃描" + scanCount.ToString() + "條"; this.txtBarcode.Focus();//獲取焦點 this.txtBarcode.Select(this.txtBarcode.TextLength, 0);//光標定位到文本最后 this.txtBarcode.ScrollToCaret();//滾動到光標處 } #region region 獲取碼制 string codeType; codeType = Scanner.GetCodeType(); txtCodeType.Text = codeType; #endregion endregion } else if (e.KeyValue == 8) { btnClean_Click(null, null); } else if (e.KeyValue == 27) { this.Close(); } } //設置掃描方式 private void cbbScanType_SelectedIndexChanged(object sender, EventArgs e) { try { if (cbbScanType.SelectedIndex == 0) { SalesPoint.Device.Scan.Scanner.SetTrigger(0);//單掃 } else if (cbbScanType.SelectedIndex == 1) { SalesPoint.Device.Scan.Scanner.SetTrigger(2);//連掃(如掃描頭不支持則不改變) } else if (cbbScanType.SelectedIndex == 2) { SalesPoint.Device.Scan.Scanner.SetTrigger(3);//閃爍(如掃描頭不支持則不改變) } cbbScanType.Update(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void brnExit_Click(object sender, EventArgs e) { this.Close(); } //清空數據 private void btnClean_Click(object sender, EventArgs e) { txtBarcode.Text = ""; scanCount = 0; lblCount.Text = "已掃描0條"; } //設置掃條提示 private void cbbHint_SelectedIndexChanged(object sender, EventArgs e) { if (cbbHint.SelectedItem.ToString() == "聲音") SalesPoint.Device.Scan.Scanner._scansoundtype = ScanSoundType.Sound; else if (cbbHint.SelectedItem.ToString() == "聲音加震動") { SalesPoint.Device.Scan.Scanner._scansoundtype = ScanSoundType.SoundAndMotor; } else if (cbbHint.SelectedItem.ToString() == "震動") { SalesPoint.Device.Scan.Scanner._scansoundtype = ScanSoundType.Motor; } else if (cbbHint.SelectedItem.ToString() == "無提示") { SalesPoint.Device.Scan.Scanner._scansoundtype = ScanSoundType.Closed; } } private void DeviceType1D_Click(object sender, EventArgs e) { iDeviceType = 1; //一維 DeviceType2D.Checked = false; DeviceType1D.Checked = true; cbbScanType.Enabled = true; cbbScanCode.Enabled = false; } private void DeviceType2D_Click(object sender, EventArgs e) { iDeviceType = 2; //二維 DeviceType1D.Checked = false; DeviceType2D.Checked = true; cbbScanType.Enabled = false; cbbScanCode.Enabled = true; } } } 注意:具體的開發DEMO,更多開發資料可以聯系PDA導購網進行索取。 銷邦X5手持終端/銷邦winCE手持終端SDK請點擊連接進行操作! 銷邦手持終端二次開發,銷邦X5手持機調用掃描頭SDK,歡迎咨詢PDA導購網! 商米收銀機,商米手持機,商米POS機,商米雙屏收銀機,歡迎咨詢PDA導購網! 商米安卓手持收銀機POS機、商米單屏/雙屏收銀機、自助收銀機,歡迎咨詢PDA導購網 PDA導購網(www.vtgvip.com)專業的條碼手持終端、工業級PDA、RFID手持機選型導購網站! 條碼手持終端、盤點機,RFID手持終端,安卓PDA選型,請聯系PDA導購網免費給您推薦最合適的手持終端! 聯系方式:柳工 手機(微信同號):15016095220 備注:PDA導購網銷邦X5手持終端/銷邦wince手持終端二次開發,掃描頭調用