Tag: usb

从USB设备读取并向其发送查询,在C#中

我读过这个: https : //stackoverflow.com/questions/1176053/ ,这是一篇富有洞察力的文章。 但是,我在WMI方面没有很好的背景,我发现大量的文档都是压倒性的。 我找不到我要找的东西。 情况是我有一个设备将通过USB端口发送数据到相关PC的声卡。 考虑相机软件。 您连接相机,启动程序,您可以使用相机控制程序,反之亦然。 例如,您可以按相机上的按钮,它将开始传输到程序。 或者您可以单击程序中的按钮,它将开始查询数据。 我需要找到一种方法来查询和捕获这些数据,安全和正确。 它可能是一个字节流,但搜索它不会产生任何结果。 我想我首先需要以某种方式连接。 然后发送查询。 然后收到。 但是,连接和查询两者是我在示例代码或MSDN上的System.Management文档中找不到的。

在c#中通过USB驱动POS打印机

任何想法如何我最好从c#驱动USB POS打印机。 POS打印机通常是串行,TCP / IP或USB。 我知道如何完成串行和TCP / IP,但不知道在C#中通过USB进行通信。 我知道微软有一个名为POS.NET的图层,但我想尽量避免使用它。 任何想法或人们可以推荐的任何C#库都会非常感激。 谢谢

控制USB端口的电源?

有人知道如何控制某个USB端口上的USB引脚吗? 我认为在汇编程序中肯定是可能的,但是C ++或C#呢? 我希望能够使用USB电池作为LED的电源或类似的东西。 那么一个程序就可以打开电源并关闭电源使其闪烁。 我知道这听起来毫无意义,但我需要做一些非常棒的事情。 我也知道它可能需要一个自定义驱动程序。

无法从DeviceInformation.Id创建UsbDevice

我正在尝试使用仅适用于PC的通用Windows应用程序(无手机)(WinRT)通过Windows.Devices.Usb API连接到设备(SecuGen Hamster Pro 20)。 该设备是指纹扫描仪。 我已经完成了在线找到的所有步骤: 我找了所有使用的设备: var myDevices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(); 这将返回大约1400个设备。 经过一些过滤使用: var resultList = myDevices.Where(s => s.Name.ToLower().Contains(“secu”)).ToList(); resultList在我的机器中包含3个设备(我在其他机器上尝试了它,并在一些机器上找到了10个结果)。 我没有使用重载来查找设备DeviceInformation.FindAllAsync(String aqsFilter)因为它返回0结果,但我确定我做得对(使用了正确的VID和PID) 这里的问题是当我尝试使用以下三种结果中的任何一种创建UsbDevice对象时: UsbDevice device = await UsbDevice.FromIdAsync(resultList[0].Id); 返回值为null,我已经尝试了所有这些( resultList[0] , resultList[1] , resultList[2] )没有运气。 我使用以下方法配置function: 我还试图从DeviceInformation.FindAllAsync()返回的1400个设备中创建一个UsbDevice对象但是所有返回null甚至一些抛出一个exception,表示the system cannot find the file specified 0x80070002 我试图为它返回DeviceAccessStatus.Unspecified的设备读取DeviceAccessStatus.Unspecified 任何人都可以带我到我在这里失踪的地方?

从读卡器C#中弹出存储卡

我有一个定制开发的USB读卡器。 我使用以下代码进行交互并对设备进行迭代: http://www.codeproject.com/KB/system/usbeject.aspx 上面的代码使用以下行提供了’eject’方法: Native.CM_Request_Device_Eject_NoUi(device.InstanceHandle, IntPtr.Zero, null, 0, 0); 但是,这种“弹出”方法会卸载整个驱动器,而不是简单地弹出介质卡。 为什么这是一个问题是因为我想“弹出”媒体卡,然后放入另一个。 然而,当整个阅读器被弹出时,我必须拔出/重新插入设备才能显示备份。 在Windows资源管理器中,当我右键单击“弹出”时,它按照我想象的方式运行,它可以安全地移除存储卡而不是读卡器。 我怎样才能在c#中推动这种不同类型的弹出? 谢谢,斯蒂芬妮

捕获USB插件并拔出事件System.InvalidCastException

我正在尝试检测USB设备插入并使用WinForm桌面C#应用程序删除: public Form1() { InitializeComponent(); USB(); } 然后: private void USB() { WqlEventQuery weqQuery = new WqlEventQuery(); weqQuery.EventClassName = “__InstanceOperationEvent”; weqQuery.WithinInterval = new TimeSpan(0, 0, 3); weqQuery.Condition = @”TargetInstance ISA ‘Win32_DiskDrive'”; var m_mewWatcher = new ManagementEventWatcher(weqQuery); m_mewWatcher.EventArrived += new EventArrivedEventHandler(m_mewWatcher_EventArrived); m_mewWatcher.Start(); } 和: static void m_mewWatcher_EventArrived(object sender, EventArrivedEventArgs e) { bool bUSBEvent = false; foreach […]

如何使用C#通过USB将原始ZPL发送到斑马打印机

我是初学C#程序员。 我有一个项目要求我通过USB将原始命令发送到Zebra打印机LP 2844并使其工作。 我做了很多研究,并试图找到一种方法来做到这一点。 我正在使用http://support.microsoft.com/kb/322091中的代码,但它无效。 根据我的测试,似乎我已经向打印机发送了命令,但它没有响应和打印。 我不知道这个。 有人可以帮我吗? 我正在使用按钮直接发送命令 private void button2_Click(object sender, EventArgs e) { string s = “A50,50,0,2,1,1,N,\”9129302\””; // Allow the user to select a printer. PrintDialog pd = new PrintDialog(); pd.PrinterSettings = new PrinterSettings(); if (DialogResult.OK == pd.ShowDialog(this)) { // Send a printer-specific to the printer. RawPrinterHelper.SendStringToPrinter(pd.PrinterSettings.PrinterName, s); MessageBox.Show(“Data sent to printer.”); […]

WMI:插入时获取USB设备描述

如何在插入USB设备时获取设备ID和其他说明? 我找到了一个如何获得USB设备插入/删除通知的示例。 但是如何获取设备desrtiption信息? 这是我的代码片段: WqlEventQuery q; ManagementScope scope = new ManagementScope(“root\\CIMV2”); scope.Options.EnablePrivileges = true; try { q = new WqlEventQuery(); q.EventClassName = “__InstanceDeletionEvent”; q.WithinInterval = new TimeSpan(0, 0, 3); q.Condition = @”TargetInstance ISA ‘Win32_USBControllerdevice'”; w = new ManagementEventWatcher(scope, q); w.EventArrived += new EventArrivedEventHandler(USBRemoved); w.Start(); } … catch()…. 更新:实际上,它是一个带USB连接的串行COM设备。 所以没有driveName属性。 如何获取USB描述,我可以在设备管理器中看到? WMI是否提供有关USB插入的通知的此信息?

在C#中访问USB或串口

如何在C#中通过USB发送和接收? 串口和LPT怎么样?

SerialPort问题

我正在使用SerialPort与条形码阅读器进行通信(只读)。 我已经安装了驱动程序来操作阅读器,就好像它是通过Com-port连接的,虽然它是一个usb设备。 插入设备后,列表中会再出现一个Com-port。 问题如下。 我初始化SerialPort对象以从条形码阅读器读取,但如果读取器被拔掉,我无法正确完成或处置SerialPort对象,因为它“附加”的端口不再存在。 程序关闭时,结果是WinIOException。 我不仅在使用SerialPort的代码中捕获它,而且在program.cs级别也是如此。 根据堆栈,在尝试完成和处理SerialPort对象后抛出WinIOException。 有没有想法如何正确操作这种情况? 或者至少要抓住例外? 我确切知道的是问题不在于这个特定的驱动程序; 我还有一个来自另一个制造商的条形码阅读器(具有相同的目的驱动程序) – 情况是相同的。