|
 |
|
สอบถามการป้องกันไม่ให้ user ใช้มือคีย์ข้อมูลในการลงเวลาหน่อยครับ |
|
 |
|
|
 |
 |
|
ตัวที่เป็น textbox ให้ทำเป็น readonly ครับ(แค่นี้ User ก็ไม่สามารถ พิมพ์อะไรได้แล้ว)

ที่นี้ ลองเอา บาร์โค๊ด ยิงดูว่ามันไปอยู่ไหน
ถ้าไม่ตรงกับ textbox เปลี่ยน tabindex ให้ เป็น 0

ปล. tabindex คือ ลำดับก่อน หลัง ของ control ในหน้าฟอร์ม เมื่อเรากดปุ่ม tab
คิดง่ายๆคือ เมื่อ เราเปิด หน้า ฟอร์มมา มันจะชี้ เคอเซอร์ ไปที่ control ที่ tabindex เป็น 0
ถ้าหาก ใครนึกไม่ออก แนะนำให้ โหลดโปรแกรมอะไรก็ได้ มาลองติดตั้งโดยที่ ห้าม ใช้ เมาส์ กดปุ่ม
แต่ให้ใช้แค่ tab/scoll ของ คีย์บอร์ดดูจะเห็นภาพชัดขึ้นมากครับ
|
 |
 |
 |
 |
Date :
2018-08-21 17:11:55 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มีอีกอย่างครับ ง่ายเหมือนกัน
ดักจับ TextChanged
Code (C#)
private void textBox1_TextChanged(object sender, EventArgs e)
{
dateTimePicker1.Value = DateTime.Now;
}

|
 |
 |
 |
 |
Date :
2018-08-21 17:51:31 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้ามี event keyup จะมาจาก keyboard ถ้าไม่มี มาจากอุปกรณ์อื่น
Code (C#)
on_keyup { set isKeyboard = true;}
on_keypress{
if { isKeyboard}{ // ข้อมูลมาจาก คีย์บอร์ด
isKeyboard = false; // set ให้พร้อมรับคีย์ใหม่
return false; // ยกเลิก ทุกคีย์
}
}
on_change{
// ข้อมูลเรียบร้อย
}
|
 |
 |
 |
 |
Date :
2018-08-21 21:21:25 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Barcode Reader ที่ผมใช้มันมี event ครบเลยน่ะครับ
key down ,key press,key up
ผมคิดว่าถ้าเอาแบบง่ายก็
1. เอา keyboard ออก
2. เปลี่ยนไปใช้ Barcode Reader แบบ Com port (RS232) แทน
ถ้าเขียน code เอาที่เคยเห็นก็จะใช้วิธีจับเวลา
ประมาณว่า ถ้าตัวอักษรที่ 1 เข้ามา ก็จะจับเวลา
ภายใน 1-2 วิถ้ายังไม่กด enter ก็จะลบทิ้ง
แต่วิธีนี้ก็ใช้ วิธี paste ข้อความเข้าไป
ระบบก็ป้องกันไม่ได้อยู่ดี
มี code อีกตัวคือใช้วิธีแยกอุปกรณ์ที่ key เข้ามา
อาจจะไปลองเอาเองว่าจะประยุกต์ใช้ยังไงน่ะครับ
https://www.codeproject.com/Articles/17123/Using-Raw-Input-from-C-to-handle-multiple-keyboard
|
 |
 |
 |
 |
Date :
2018-08-22 09:56:38 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอเพิ่มหน่อย
ถ้าเขียน code เอาที่เคยเห็นก็จะใช้วิธีจับเวลา
ประมาณว่า ถ้าตัวอักษรที่ 1 เข้ามา ก็จะจับเวลา
ภายใน 1-2 วิถ้ายังไม่กด enter ก็จะลบทิ้ง
แต่วิธีนี้ก็ใช้ วิธี paste ข้อความเข้าไป
ระบบก็ป้องกันไม่ได้อยู่ดี
==> วิธีนี้ถ้าไม่เอา textbox รับ
แต่ใช้ form รับค่าแทน
ก็น่าจะใช้ได้น่ะครับ
เพราะมันไม่น่าจะมีช่องให้ paste ข้อความ
|
 |
 |
 |
 |
Date :
2018-08-22 09:58:38 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไม่เคยใช้เลยนะครับ
ไม่รู้ว่าอันไหนใช้ได้บ้าง
https://stackoverflow.com/questions/50464858/allow-only-barcode-scanner-and-eliminate-keyboard-input
https://dotnettrails.wordpress.com/2010/03/11/capturing-barcode-scan-using-c/
|
 |
 |
 |
 |
Date :
2018-08-22 10:24:00 |
By :
fonfire |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|

|
Load balance : Server 05
|