以 windows 形式检测并连接扫描仪条码 winson 型号 WGI-311 c#
detected and connect scanner barcode winson model WGI-311 in windows form c#
我有条码扫描仪设备
我想在我的应用程序中检测并连接此设备(windows form c#)
但是,我不知道如何连接
请帮帮我
你不需要。让我解释一下:您的设备(我认为是 USB)已经连接到 windows,因此它像另一个键盘一样工作。
如果您使用 windows 表单,只需将光标设置到文本框或任何可能接受输入的内容,或者如果您使用控制台应用程序,则使用 Console.ReadLine()。
// for a console app: example (you'll see the entry twice of course!)
class Program
{
static void Main(string[] args)
{
string inputCode = Console.ReadLine();
Console.WriteLine(inputCode);
Console.ReadKey();
}
}
当你运行这个时,只需扫描一个条形码,它就会显示扫描的字符串(两次:一次用于键盘,另一次来自变量输出)。
对于 Windows.Forms 应用程序,我建议您的代码将焦点设置为空字段作为文本框,并使用其 KeyDown 事件来测试是否输入了字符串。请注意,您的扫描仪应该能够在扫描结束时执行 CR 或 CR-LF(这也适用于 Console.ReadLine() 退出的控制台应用程序示例)。
示例如下:在您的表单中放置 2 个文本框(textBox1 和 textBox2)。
// This will give focus and place cursor on textBox2 at form start (normally, it would be on the first textBox created)
public Form1()
{
InitializeComponent();
textBox2.Select();
textBox2.KeyDown += TextBox2_KeyDown;
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// This will copy to the textBox1 the incoming scanned barcode
textBox1.Text = textBox2.Text;
}
}
当然,这些只是展示流程的例子。现实生活中不要使用2个内容相同的文本容器!
在您发表第一条评论后:
在您的表单中放置一个列表框和一个按钮来触发它:
private void button3_Click(object sender, EventArgs e)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * from Win32_Keyboard");
foreach (ManagementObject keyboard in searcher.Get())
{
foreach (PropertyData prop in keyboard.Properties)
{
if (prop.Value != null)
{
listBox1.Items.Add(prop.Value);
// later, use: if (Convert.ToString(prop.Value).Contains("your device")) to check the presence
}
}
}
}
在开头添加:
using System.Management;
这将向您显示连接到计算机的设备。通过plugging/unplugging,记下扫描仪(或USB dongle)的引用,稍后可以测试是否连接。
如果您需要进一步的帮助,请再次评论。
我有条码扫描仪设备 我想在我的应用程序中检测并连接此设备(windows form c#) 但是,我不知道如何连接
请帮帮我
你不需要。让我解释一下:您的设备(我认为是 USB)已经连接到 windows,因此它像另一个键盘一样工作。 如果您使用 windows 表单,只需将光标设置到文本框或任何可能接受输入的内容,或者如果您使用控制台应用程序,则使用 Console.ReadLine()。
// for a console app: example (you'll see the entry twice of course!)
class Program
{
static void Main(string[] args)
{
string inputCode = Console.ReadLine();
Console.WriteLine(inputCode);
Console.ReadKey();
}
}
当你运行这个时,只需扫描一个条形码,它就会显示扫描的字符串(两次:一次用于键盘,另一次来自变量输出)。
对于 Windows.Forms 应用程序,我建议您的代码将焦点设置为空字段作为文本框,并使用其 KeyDown 事件来测试是否输入了字符串。请注意,您的扫描仪应该能够在扫描结束时执行 CR 或 CR-LF(这也适用于 Console.ReadLine() 退出的控制台应用程序示例)。
示例如下:在您的表单中放置 2 个文本框(textBox1 和 textBox2)。
// This will give focus and place cursor on textBox2 at form start (normally, it would be on the first textBox created)
public Form1()
{
InitializeComponent();
textBox2.Select();
textBox2.KeyDown += TextBox2_KeyDown;
}
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
// This will copy to the textBox1 the incoming scanned barcode
textBox1.Text = textBox2.Text;
}
}
当然,这些只是展示流程的例子。现实生活中不要使用2个内容相同的文本容器!
在您发表第一条评论后: 在您的表单中放置一个列表框和一个按钮来触发它:
private void button3_Click(object sender, EventArgs e)
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * from Win32_Keyboard");
foreach (ManagementObject keyboard in searcher.Get())
{
foreach (PropertyData prop in keyboard.Properties)
{
if (prop.Value != null)
{
listBox1.Items.Add(prop.Value);
// later, use: if (Convert.ToString(prop.Value).Contains("your device")) to check the presence
}
}
}
}
在开头添加:
using System.Management;
这将向您显示连接到计算机的设备。通过plugging/unplugging,记下扫描仪(或USB dongle)的引用,稍后可以测试是否连接。
如果您需要进一步的帮助,请再次评论。