Tag: usb

使用writefile()无法与USB HID设备成功通信

我对C#以及Windows编程都很陌生,我正试图在Windows xp pc上建立USB HID设备和用c#编写的应用程序之间的通信。 我已成功获取设备路径并已使用此路径在设备上建立有效的句柄: IntPtr drive = CreateFile(devicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, IntPtr.Zero, OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, IntPtr.Zero); 这被certificate是一个有效的句柄,在测试时产生一个正整数。 创建句柄后,我调用’HidD_GetPreparsedData’和’HidP_GetCaps’,它产生一个先前导入的结构(HIDP_CAPS),用于存储与所连接设备相关的特定数据。 接下来,我尝试调用writefile(): bool success = WriteFile(drive, ref outputReportBuffer, caps.OutputReportByteLength, ref numberOfBytesWritten, IntPtr.Zero); drive:设备的句柄 outputReportBuffer:要写入的字节数组[65] caps.OutputReportByteLength:要写入的字节数,caps是HIDP_CAPS的结构 numberOfBytesWritten:硬编码为0 IntPtr.Zero:我读过的所有内容都像我一样传递了最后一个参数。 在’writefile’的forms参数中,最后一个参数被列为’IntPtr ipOverlapped’,但我无法弄清楚它是什么,除了它应该作为某种forms的0传递 如何导入WriteFile: [DllImport(“kernel32.dll”, SetLastError = true)] public static extern bool WriteFile(IntPtr hFile, ref byte[] lpBuffer, uint nNumberOfBytesToWrite, […]

C#所需的HASP HL工作演示

好的。 好吧,我知道这个问题很有可能在前10分钟内被关闭,但我还是会问它,因为我花了将近一天半的时间试图寻找解决方案。 不过,我无法想出这个。 虽然他们有演示,但即使在HASP(safenet)网站上也没有太多关于此的信息。 我有一个HASP HL USB加密狗。 我尝试转换他们的演示和测试运行它,但对于我的生活我甚至无法让它登录甚至。 它不断提高Aladdin.HASP.HaspStatus.HaspDotNetDllBrokenexception。 但是,如果我运行他们演示的C版本,它可以很好地工作。 这是我的代码的Csharp版本: Aladdin.HASP; HASP myHasp = new HASP(); var thestatus = myHasp.Login(vender_code); myHasp.Logout; 我想登录USB HASP并在其内存中获取其HaspID和设置。 提前致谢,

获取USB适配器的com端口号

我正在尝试编写一个程序,使用arduino mega和基于FTDI的USB转RS485适配器。 我想让程序用户友好,因此我不会让用户手动检查com端口号,但我想自动检测它。 这是代码的一小部分 ManagementScope scope = new ManagementScope(); SelectQuery query = new SelectQuery(“SELECT * FROM Win32_SerialPort”); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); try { foreach (ManagementObject item in searcher.Get()) { String description = item[“Description”].ToString(); String deviceID = item[“DeviceID”].ToString(); Console.WriteLine(“Porta ” + description + ” deviceID ” + deviceID); if (description.Contains(“USB Serial Port”)) return deviceID; […]

一台PC可以访问多少个USB摄像头

我只是想知道一台台式电脑可以访问多少USB摄像头? 有没有限制? 我打算创建自己的Windows应用程序(使用.NET)来捕获大约10台连接到我的台式PC的USB摄像头。 这可能吗?

使用VID和PID识别连接到x64的USB设备的COM端口

如下我能够通过给定的pid和vid获得连接到32位win7OS机器的usb com端口名称,但是当在x64中运行时,它会卡在以下行中: comports.Add((string)rk6.GetValue(“PortName”)); 这是我的代码 static List ComPortNames(String VID, String PID) { String pattern = String.Format(“^VID_{0}.PID_{1}”, VID, PID); Regex _rx = new Regex(pattern, RegexOptions.IgnoreCase); List comports = new List(); RegistryKey rk1 = Registry.LocalMachine; RegistryKey rk2 = rk1.OpenSubKey(“SYSTEM\\CurrentControlSet\\Enum”); foreach (String s3 in rk2.GetSubKeyNames()) { RegistryKey rk3 = rk2.OpenSubKey(s3); foreach (String s in rk3.GetSubKeyNames()) { if (_rx.Match(s).Success) { […]

Win32Api USB SetupDiGetDeviceInterfaceDetail失败

我正在尝试连接USB GPS设备。 如果我通过CreateFile WinApi手动创建文件(使用设备管理器中指定的路径),我可以成功连接到设备。 但是,当我尝试通过枚举选择设备时,我失败了@ SetupDiGetDeviceInterfaceDetail调用。 我有正确的C代码,但我的C#转换似乎无法正常工作。 我尝试了很多变化,结果基本相同。 C代码有效 // Get enumerator handle for the specified ClassGuid HDEVINFO theDevInfo = SetupDiGetClassDevs((GUID*)&GUID_DEVINTERFACE_GRMNUSB, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); SP_DEVICE_INTERFACE_DATA theInterfaceData; theInterfaceData.cbSize = sizeof(theInterfaceData); // populate theInterfaceData which contains device class information if (!SetupDiEnumDeviceInterfaces(theDevInfo, NULL, (GUID*)&GUID_DEVINTERFACE_GRMNUSB, 0, &theInterfaceData) && GetLastError() == ERROR_NO_MORE_ITEMS) { gHandle = 0; return; } […]

如何从usb rfid阅读器上阅读?

我买了一台usb rfid阅读器。 当用户在设备前放置rfid标签时,如何读取数据? 我的电脑将设备识别为人机接口设备。 如果它将它识别为com设备,则使用serialPort对象从设备读取要容易得多,但我不知道如何从USB设备读取。 有帮助吗?

使用C#从USB读取数据?

我不想读串口或其他可能的简单快捷方式。 我想知道如何使用C#读取笔记本电脑中的USB端口。 无论您是建议网站还是解释流程,我都将非常感谢您的帮助

C#检测usb设备ClassCode(usb设备类型)

我需要知道系统中目前使用的是什么类型的USB设备。 有关USB设备类别代码的USB规范。 但是我无法获得设备类型,WMI请求WQL: select * from Win32_UsbHub在类代码,子类代码,协议类型字段上给出空值。 有关如何检测当前使用的USB设备类型的任何想法? 我目前的代码: ManagementObjectCollection collection; using (var searcher = new ManagementObjectSearcher(@”Select * From Win32_USBHub”)) { collection = searcher.Get(); foreach (var device in collection) { var deviceId = (string)GetPropertyValue(“DeviceID”); var pnpDeviceId = (string)GetPropertyValue(“PNPDeviceID”); var descr = (string)device.GetPropertyValue(“Description”); var classCode = device.GetPropertyValue(“ClassCode”); //null here } }

C#如何使用USB Hub检查USB端口并使用控制器?

我目前正在尝试使用USB Hub扫描所有USB端口(检查它是否为Root)以及它们连接到哪个控制器。 为了使它更明显: USB Port1 (nothing plugged in) -> USB Hub1 | |-> Controller 1 USB Port2 (Keyboard plugged in) -> |-> USB Root Hub |-> Controller 2 USB Port3 (nothing plugged in) -> USB Hub2 | | USB Port4 (nothing plugged in) -> |-> USB Root Hub |-> Controller3 (Mainboard) 我想将用户所有端口和连接的集线器显示为树。 如果USB端口及其控制器正在使用中。 我希望你们能理解我想要描述的内容。 如果你能给我一些关键词甚至代码片段我会非常感激。 […]