Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否有办法从条形码扫描仪设备读取条形码?_C#_.net_Wpf_Barcode_Barcode Scanner - Fatal编程技术网

C# 是否有办法从条形码扫描仪设备读取条形码?

C# 是否有办法从条形码扫描仪设备读取条形码?,c#,.net,wpf,barcode,barcode-scanner,C#,.net,Wpf,Barcode,Barcode Scanner,如果我打开记事本,从条形码扫描仪设备读取条形码,并将焦点放在记事本上,它会将条形码写入记事本窗口。我只想在我的C#程序中得到相同的输出,因为我创建了一个文本框,并将焦点放在我的文本框上,输出就是我想要的。现在,如果情况是I没有文本框,那么应该如何将相同的字符串分配给我的一些变量。我已经做了这项研究,但有很多图书馆正在从图像或一些DLL中读取它。我相信有一些简单的方法可以解决这个问题 提前感谢您的帮助我的一位同事最近使用了一台条形码扫描仪(摩托罗拉),我帮他完成了这个项目 不幸的是,每个条形码扫描

如果我打开记事本,从条形码扫描仪设备读取条形码,并将焦点放在记事本上,它会将条形码写入记事本窗口。我只想在我的C#程序中得到相同的输出,因为我创建了一个
文本框
,并将焦点放在我的文本框上,输出就是我想要的。现在,如果情况是I没有
文本框
,那么应该如何将相同的字符串分配给我的一些变量。我已经做了这项研究,但有很多图书馆正在从图像或一些DLL中读取它。我相信有一些简单的方法可以解决这个问题


提前感谢您的帮助

我的一位同事最近使用了一台条形码扫描仪(摩托罗拉),我帮他完成了这个项目

不幸的是,每个条形码扫描器都有不同的读取条形码的实现(尽管一般的机制通常是相似的)。您必须下载条形码扫描仪设备的SDK。查看制造商的网站,了解如何安装

通常,您必须添加对其DLL的引用,然后在其OnRead事件(或任何他们称之为OnRead的事件)上放置一个处理程序。它通常有一个特殊的对象作为事件参数,其中包含读取器发送的数据


我知道我在这里很含糊,但是如果不知道扫描仪的确切品牌和型号,我就不能说太多了。你得自己研究一下这件事。

我的一个同事最近在一台条形码扫描仪(摩托罗拉)上工作,我帮他做了那个项目

不幸的是,每个条形码扫描器都有不同的读取条形码的实现(尽管一般的机制通常是相似的)。您必须下载条形码扫描仪设备的SDK。查看制造商的网站,了解如何安装

通常,您必须添加对其DLL的引用,然后在其OnRead事件(或任何他们称之为OnRead的事件)上放置一个处理程序。它通常有一个特殊的对象作为事件参数,其中包含读取器发送的数据


我知道我在这里很含糊,但是如果不知道扫描仪的确切品牌和型号,我就不能说太多了。您必须自己对此进行一些研究。

将forms KeyPreview事件设置为true。然后为表单KeyUp事件连接一个处理程序,并在那里处理击键。扫描仪发送的数据看起来就像你按下键盘到Windows,这样它就会将事件传递到你的应用程序。

将forms KeyPreview事件设置为true。然后为表单KeyUp事件连接一个处理程序,并在那里处理击键。扫描仪发送的数据看起来就像你按下键盘到Windows,因此它会将事件传递到你的应用程序。

我认为条形码扫描仪只会向你的应用程序发送击键。你能在表单级别捕捉到这一点吗(需要将KeyPreview设置为true才能将击键发送到表单)@Leewills-这是正确的做法吗?你必须查看该链接并决定这是否适用于你。基本原理如我所述。我认为条形码扫描器只是向您的应用程序发送按键。你能在表单级别捕捉到这一点吗(需要将KeyPreview设置为true才能将击键发送到表单)@Leewills-这是正确的做法吗?你必须查看该链接并决定这是否适用于你。基本原理如我所述,我有霍尼韦尔。但这不是我的问题所在。我试图理解,当一个文本框得到值,记事本可以得到值,为什么我不能很容易地得到相同的值,为什么我应该使用DLL来实现它。但是+1表示感谢您的支持effort@MohitShrivastava您只需扫描即可将其输入记事本或文本框中,因为扫描仪以这些程序可以读取的方式发送代码。本质上,Windows拦截调用本身(或安装在Windows中的程序)并知道如何处理它。但是,默认情况下,您的C#程序不知道如何处理扫描仪信息。事实上,如果你没有明确告诉它绑定到扫描器读取函数,你的C#程序就会忽略它,就像记事本默认会忽略网络流量一样,因为它不相关。你可以扫描到记事本(或你的文本框),因为扫描器只发送键盘按键。通过扫描文本框,只需设置焦点即可证明这一点。对于Windows来说,看起来您只是在键盘上键入了它们,这样它们就会被发送到您的应用程序中。我在基于浏览器的应用程序中使用了条形码扫描仪,它不需要外部库,只需要处理击键事件。你可以使用我上面提到的KeyPreview方法来检查这一点。我有霍尼韦尔。但这不是我的问题所在。我试图理解,当一个文本框得到值,记事本可以得到值,为什么我不能很容易地得到相同的值,为什么我应该使用DLL来实现它。但是+1表示感谢您的支持effort@MohitShrivastava您只需扫描即可将其输入记事本或文本框中,因为扫描仪以这些程序可以读取的方式发送代码。本质上,Windows拦截调用本身(或安装在Windows中的程序)并知道如何处理它。但是,默认情况下,您的C#程序不知道如何处理扫描仪信息。事实上,如果你没有明确告诉它绑定到扫描器读取函数,你的C#程序就会忽略它,就像记事本默认会忽略网络流量一样,因为它不相关。你可以扫描到记事本(或你的文本框),因为扫描器只发送键盘按键。通过扫描文本框,只需设置焦点即可证明这一点。对于Windows来说,看起来您只是在键盘上键入了它们,这样它们就会被发送到您的应用程序中。我在一个基于浏览器的应用程序中使用了条形码扫描仪,它不需要外部库