我可以在.net WPF KeyEventArgs中获取输入键盘硬件ID吗?

我可以在.net WPF KeyEventArgs中获取输入键盘硬件ID吗?,wpf,keyeventargs,Wpf,Keyeventargs,我有一个.net wpf表单,使用以下方法检查击键: private void Window_PreviewKeyDown(object sender, KeyEventArgs e) 有两个“键盘”:一个是标准输入键盘,另一个是USB信用卡读卡器。KeyEventArgs属性是否允许我告诉哪个硬件ID发送了文本 或者是否有一种方法可以从PreviewKeyDown调用以获取硬件ID?我已经查看了所有KeyEventArgs属性,包括我无法访问的私有属性,并且找不到任何特定于硬件ID的属性。并

我有一个.net wpf表单,使用以下方法检查击键:

private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
有两个“键盘”:一个是标准输入键盘,另一个是USB信用卡读卡器。KeyEventArgs属性是否允许我告诉哪个硬件ID发送了文本


或者是否有一种方法可以从PreviewKeyDown调用以获取硬件ID?我已经查看了所有KeyEventArgs属性,包括我无法访问的私有属性,并且找不到任何特定于硬件ID的属性。

并不是说这是不可能的,但另一方面,如果您正在阅读信用卡,请记住它们遵循您可以坚持的标准,例如,您可以验证Track1的传入流是否匹配正则表达式:^%[A-Z][0-9]{1,19}\^[^\^]{2,26}\^[0-9]{4}\\\\^[0-9]{3}\\\^[^\?]+\?$。如果是这样的话,我可以假设输入来自读卡器。看看这个答案,我总是能够识别读卡器输入:首先我想感谢Gary引导我使用wm_输入。我发现了一篇非常优秀的文章,其中包含一个使用wm_输入处理键盘设备的库。因此,我根本不必编写底层代码。我完全停止了使用PreviewKeyDown——很遗憾微软无法在KeyEventArgs属性中报告发送设备。