Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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# 如何在运行LibUsbDotNet的.NET应用程序中填充UsbRegDeviceList;“入门示例”;_C#_Vb.net_Usb_Libusb_Libusbdotnet - Fatal编程技术网

C# 如何在运行LibUsbDotNet的.NET应用程序中填充UsbRegDeviceList;“入门示例”;

C# 如何在运行LibUsbDotNet的.NET应用程序中填充UsbRegDeviceList;“入门示例”;,c#,vb.net,usb,libusb,libusbdotnet,C#,Vb.net,Usb,Libusb,Libusbdotnet,当我运行它时,allDevices列表是空的 我启动了一个新的VB.NET控制台项目,并安装了Nuget LibUsbDotNet 我的代码是: Imports System Imports LibUsbDotNet Imports LibUsbDotNet.Info Imports LibUsbDotNet.Main Imports System.Collections.ObjectModel Module Module1 Public MyUsbDevice As

当我运行它时,allDevices列表是空的

我启动了一个新的VB.NET控制台项目,并安装了Nuget LibUsbDotNet

我的代码是:

Imports System
Imports LibUsbDotNet
Imports LibUsbDotNet.Info
Imports LibUsbDotNet.Main
Imports System.Collections.ObjectModel



Module Module1

        Public  MyUsbDevice As UsbDevice

        Public  Sub Main(args As String())
            ' Dump all devices and descriptor information to console output.
            Dim allDevices As UsbRegDeviceList = UsbDevice.AllDevices
            For Each usbRegistry As UsbRegistry In allDevices
                If usbRegistry.Open(MyUsbDevice) Then
                    Console.WriteLine(MyUsbDevice.Info.ToString())
                    For iConfig As Integer = 0 To MyUsbDevice.Configs.Count - 1
                        Dim configInfo As UsbConfigInfo = MyUsbDevice.Configs(iConfig)
                        Console.WriteLine(configInfo.ToString())

                        Dim interfaceList As ReadOnlyCollection(Of UsbInterfaceInfo) = configInfo.InterfaceInfoList
                        For iInterface As Integer = 0 To interfaceList.Count - 1
                            Dim interfaceInfo As UsbInterfaceInfo = interfaceList(iInterface)
                            Console.WriteLine(interfaceInfo.ToString())

                            Dim endpointList As ReadOnlyCollection(Of UsbEndpointInfo) = interfaceInfo.EndpointInfoList
                            For iEndpoint As Integer = 0 To endpointList.Count - 1
                                Console.WriteLine(endpointList(iEndpoint).ToString())
                            Next
                        Next
                    Next
                End If
            Next


            ' Free usb resources.
            ' This is necessary for libusb-1.0 and Linux compatibility.
            UsbDevice.[Exit]()

            ' Wait for user input..
            Console.ReadKey()
        End Sub

End Module
我的桌面USB设备


我相信我的桌面太旧了,虽然我最近升级到Win 10。为了解决这个问题,我使用了新的Win 10笔记本电脑,安装并运行了过滤器(子)驱动程序,选择了笔记本电脑的网络摄像头(作为测试视频和PID),安装了libUsb-Win32,创建了一个.NET控制台项目(我做了VB和C),做了VS>proj>Refs>NUGET>浏览了LibUsbDotNet,安装了它,粘贴了Sourceforge的LibUsbDotNet的第一个示例,它工作得很好:它连接到网络摄像头驱动程序(由过滤器子驱动程序选择),并读取正确的视频和PID。(示例报告了错误,因为网络摄像头驱动程序没有响应轮询,但这是意料之中的)。

那么控制面板>设备管理器会怎么说?您插入了一些USB设备?如果您以管理员身份运行Visual Studio,有什么区别吗?有。添加了上面的列表。。。我将尝试VS作为adminVS作为Admin没有效果…仍然没有设备列表。驱动程序开发人员将编码返回错误代码。保留那台旧机器,只要把顾客得到同样东西的那一天关起来就行了。正如你所说,虽然这将更容易涵盖在“最低PC要求”中。