亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbcommunication.bas

?? usb HID類設備通訊源程序
?? BAS
?? 第 1 頁 / 共 2 頁
字號:
Attribute VB_Name = "USBCommunication"
Option Explicit

Dim Capabilities As HIDP_CAPS
Dim DataString As String
Dim DetailData As Long
Dim DeviceAttributes As HIDD_ATTRIBUTES
Dim DevicePathName As String
Dim DeviceInfoSet As Long
Dim ErrorString As String
Dim EventObject As Long
Public HIDHandle As Long
Dim HIDOverlapped As OVERLAPPED
Dim IncreaseOfPacket As Integer
Dim LastDevice As Boolean
Dim UsefulMember As Byte
Public MyDeviceDetected As Boolean
Dim MyDeviceInfoData As SP_DEVINFO_DATA
Dim MyDeviceInterfaceDetailData As SP_DEVICE_INTERFACE_DETAIL_DATA
Dim MyDeviceInterfaceData As SP_DEVICE_INTERFACE_DATA
Dim Needed As Long
Dim DetailDataBuffer() As Byte
Dim OutputReportData(64) As Byte
Dim InputReportData() As Byte
Dim PreparsedData As Long
Public ProductInformation(3) As ProductSpec_typ
Public ReadHandle As Long
Public Result As Long
Dim Security As SECURITY_ATTRIBUTES


Dim Timeout As Boolean



Public Function FindTheHid() As Boolean

Dim Count As Integer
Dim GUIDString As String
Dim HidGuid As GUID
Dim Buffer(100) As Byte
Dim ProductName As String
Dim SerialNumber As String
Dim MemberIndex As Long


LastDevice = False
MyDeviceDetected = False

Security.lpSecurityDescriptor = 0
Security.bInheritHandle = True
Security.nLength = Len(Security)

Result = HidD_GetHidGuid(HidGuid)                  '取得HID類別的GUID

DeviceInfoSet = SetupDiGetClassDevs _
    (HidGuid, _
    vbNullString, _
    0, _
    (DIGCF_PRESENT Or DIGCF_DEVICEINTERFACE)) '傳回所有已經連接并檢測過的HID,包含其信息的結構數組的地址

'DataString = GetDataString(DeviceInfoSet, 32)

MemberIndex = 0
UsefulMember = 0

Do
    ProductName = ""
    SerialNumber = ""
    MyDeviceInterfaceData.cbSize = LenB(MyDeviceInterfaceData)
    Result = SetupDiEnumDeviceInterfaces _
        (DeviceInfoSet, _
        0, _
        HidGuid, _
        MemberIndex, _
        MyDeviceInterfaceData)   '讀取識別一個HID接口的結構的指針
    
    If Result = 0 Then
       LastDevice = True
    End If
        
    If Result <> 0 Then
        MyDeviceInfoData.cbSize = Len(MyDeviceInfoData)
        Result = SetupDiGetDeviceInterfaceDetail _
           (DeviceInfoSet, _
           MyDeviceInterfaceData, _
           0, _
           0, _
           Needed, _
           0)
        
        DetailData = Needed
            
        MyDeviceInterfaceDetailData.cbSize = _
            Len(MyDeviceInterfaceDetailData)

        ReDim DetailDataBuffer(Needed)
        Call RtlMoveMemory _
            (DetailDataBuffer(0), _
            MyDeviceInterfaceDetailData, _
            4)
    
        Result = SetupDiGetDeviceInterfaceDetail _
           (DeviceInfoSet, _
           MyDeviceInterfaceData, _
           VarPtr(DetailDataBuffer(0)), _
           DetailData, _
           Needed, _
           0) '傳回一個結構,此結構的DevicePath成員是一個設備路徑,應用此路徑來開啟與該設備的通行
              
        DevicePathName = CStr(DetailDataBuffer())
        DevicePathName = StrConv(DevicePathName, vbUnicode)
        DevicePathName = Right$(DevicePathName, Len(DevicePathName) - 4)
    
        HIDHandle = CreateFile _
            (DevicePathName, _
            GENERIC_READ Or GENERIC_WRITE, _
            (FILE_SHARE_READ Or FILE_SHARE_WRITE), _
            Security, _
            OPEN_EXISTING, _
            0&, _
            0) '開啟一個HID設備,取得設備的代號,使用設備的代號與設備交換數據。代號存在HIDHandle,將來存在ReadHandle中

        DeviceAttributes.Size = LenB(DeviceAttributes)
        Result = HidD_GetAttributes _
            (HIDHandle, _
            DeviceAttributes) '取得一個包含廠商和產品ID以及產品版本號碼的結構指針
            
        If HidD_GetProductString(HIDHandle, VarPtr(Buffer(0)), UBound(Buffer)) Then
           For Count = 0 To 82 Step 2                         '42 Byte
               ProductName = ProductName & Chr(Buffer(Count))
           Next Count
        End If
        
        If HidD_GetSerialNumberString(HIDHandle, VarPtr(Buffer(0)), UBound(Buffer)) Then
           For Count = 0 To 30 Step 2                        '16 Byte
               SerialNumber = SerialNumber & Chr(Buffer(Count))
           Next Count
        End If
        
        'DeviceAttributes.VersionNumber = DeviceAttributes.VersionNumber
       If (DeviceAttributes.VendorID = MyVendorID) And _
          (DeviceAttributes.ProductID = MyProductID) And _
          (ProductName = DeviceName) Then
                MyDeviceDetected = True '判斷設備是否連接上
                
           Call GetDeviceCapabilities
           Call PrepareForOverlappedTransfer
                
           ReadHandle = CreateFile _
                 (DevicePathName, _
                 (GENERIC_READ Or GENERIC_WRITE), _
                 (FILE_SHARE_READ Or FILE_SHARE_WRITE), _
                 Security, _
                 OPEN_EXISTING, _
                 FILE_FLAG_OVERLAPPED, _
                 0)                    '此設備代號存在ReadHandle中
           
           'For Count = 1 To 64 Step 1
           '    OutputReportData(Count) = Count
           'Next Count                  '"Requre UserAsddress" is in the OutputReportData()
           'Call WriteReport
           'Call ReadReport
           
           'ProductInformation(UsefulMember).UserAddress = InputReportData(1)
           'ProductInformation(UsefulMember).ProductSerialNumber = SerialNumber
           'ProductInformation(UsefulMember).ReadCode = ReadHandle
           'ProductInformation(UsefulMember).WriteCode = HIDHandle
           
           UsefulMember = UsefulMember + 1
                    
       Else
                Result = CloseHandle _
                    (HIDHandle)
       End If
    End If
     MemberIndex = MemberIndex + 1
Loop Until (LastDevice = True)

Result = SetupDiDestroyDeviceInfoList _
      (DeviceInfoSet) '釋放SetupDiGetClassDevs所使用的資源

Call SameDeviceDetect

End Function

Public Function GetDataString(Address As Long, Bytes As Long) As String

Dim Offset As Integer
Dim Result$
Dim ThisByte As Byte

For Offset = 0 To Bytes - 1
    Call RtlMoveMemory(ByVal VarPtr(ThisByte), ByVal Address + Offset, 1)
    If (ThisByte And &HF0) = 0 Then
        Result$ = Result$ & "0"
    End If
    Result$ = Result$ & Hex$(ThisByte) & " "
Next Offset

GetDataString = Result$

End Function
Public Sub GetDeviceCapabilities()

Dim ppData(29) As Byte
Dim ppDataString As Variant

Result = HidD_GetPreparsedData _
    (HIDHandle, _
    PreparsedData) '取得一個包含設備能力信息的緩沖區的指針
    
Result = RtlMoveMemory _
    (ppData(0), _
    PreparsedData, _
    30)

ppDataString = ppData()
ppDataString = StrConv(ppDataString, vbUnicode)

Result = HidP_GetCaps _
    (PreparsedData, _
    Capabilities) '傳回一個包含設備能力信息的結構,主要是報表的內容
    
Dim ValueCaps(1023) As Byte

Result = HidP_GetValueCaps _
    (HidP_Input, _
    ValueCaps(0), _
    Capabilities.NumberInputValueCaps, _
    PreparsedData) '傳回一個報表中關于每個數值的信息的結構數組的指針
    
Result = HidD_FreePreparsedData _
    (PreparsedData) '釋放HidD_GetPreparsedData所使用的資源

End Sub

Public Sub InitializeDisplay()

Dim Count As Long

frmMain.optDeviceSymbol1.Enabled = False
frmMain.optDeviceSymbol2.Enabled = False
frmMain.optDeviceSymbol3.Enabled = False
frmMain.cmdOnce.Enabled = False
frmMain.cmdOnce.Caption = "No device detected!"

For Count = 1 To 64 Step 1
    OutputReportData(Count) = 13
Next Count
 
 'OutputReportData(1) = 72    'H
 'OutputReportData(2) = 97    'a
 'OutputReportData(3) = 112   'p
 'OutputReportData(4) = 112   'p
 'OutputReportData(5) = 121   'y
 'OutputReportData(6) = 32    '
 'OutputReportData(7) = 78    'N
 'OutputReportData(8) = 101   'e
 'OutputReportData(9) = 119   'w
 'OutputReportData(10) = 32   '
 'OutputReportData(11) = 89   'Y
 'OutputReportData(12) = 101  'e
 'OutputReportData(13) = 97   'a
 'OutputReportData(14) = 114  'r
 'OutputReportData(15) = 33   '!
 'OutputReportData(16) = 33   '!
 'OutputReportData(17) = 33   '!
' OutputReportData(18) = 129  '
' OutputReportData(19) = 2   '
' OutputReportData(20) = 33   '
' OutputReportData(21) = 33   '
' OutputReportData(22) = 33   '
' OutputReportData(23) = 33   '
' OutputReportData(24) = 33   '
' OutputReportData(25) = 33   '
' OutputReportData(26) = 33   '
' OutputReportData(27) = 33   '
' OutputReportData(28) = 33   '
' OutputReportData(29) = 33   '
' OutputReportData(30) = 33   '
' OutputReportData(31) = 121  '
' OutputReportData(32) = 122  '
' OutputReportData(33) = 123  '
' OutputReportData(34) = 124  '
' OutputReportData(35) = 125  '
' OutputReportData(36) = 128  '
' OutputReportData(37) = 129  '
 
IncreaseOfPacket = 0

Call FindTheHid

End Sub

Public Sub PrepareForOverlappedTransfer()

If EventObject = 0 Then
    EventObject = CreateEvent _
        (Security, _
        True, _
        True, _
        "")
End If

HIDOverlapped.Offset = 0
HIDOverlapped.OffsetHigh = 0
HIDOverlapped.hEvent = EventObject

End Sub
Public Sub ReadAndWriteToDevice()
Dim Count As Long
Dim EndCount As Long

EndCount = 2000
'********************************************************1    start value
For Count = 1 To 64 Step 1
    OutputReportData(Count) = 13
Next Count
  
 OutputReportData(1) = 77    'M1 00000

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产性色一区二区| 欧美成人精品福利| 国产精品性做久久久久久| 亚洲成年人影院| 亚洲一二三四区| 亚洲理论在线观看| 亚洲在线观看免费| 亚洲午夜国产一区99re久久| 亚洲综合无码一区二区| 亚洲成人免费观看| 日韩主播视频在线| 精品一区二区综合| 激情丁香综合五月| 风间由美中文字幕在线看视频国产欧美| 老司机精品视频在线| 国产乱色国产精品免费视频| 国产一区二区三区精品视频| 高清免费成人av| 91蜜桃网址入口| 这里只有精品99re| 欧美岛国在线观看| 日本一区二区三区四区在线视频| 亚洲欧洲av另类| 香蕉久久夜色精品国产使用方法| 麻豆国产精品一区二区三区| 国产v综合v亚洲欧| 色综合久久综合| 日韩一级完整毛片| 国产精品久久777777| 亚洲激情图片小说视频| 青青青爽久久午夜综合久久午夜| 国产一区二区三区四| 99精品一区二区三区| 欧美精品丝袜久久久中文字幕| 精品国产不卡一区二区三区| 亚洲丝袜美腿综合| 九九**精品视频免费播放| 成人免费毛片片v| 91精品国产综合久久香蕉麻豆| 久久色在线视频| 亚洲第一综合色| 国产成人欧美日韩在线电影| 欧美三级午夜理伦三级中视频| 欧美va亚洲va国产综合| 亚洲毛片av在线| 国产真实乱子伦精品视频| 欧洲国内综合视频| 久久亚洲一区二区三区明星换脸 | 日韩综合一区二区| 成人精品视频.| 欧美一区二视频| 亚洲精品菠萝久久久久久久| 国产真实乱子伦精品视频| 欧美无砖砖区免费| 国产精品狼人久久影院观看方式| 卡一卡二国产精品| 欧美色图一区二区三区| 亚洲欧洲av色图| 国产精品一二一区| 日韩免费视频一区| 爽爽淫人综合网网站| 欧美在线免费观看视频| 亚洲丝袜美腿综合| 成人国产精品免费观看| 久久女同性恋中文字幕| 美女一区二区视频| 3atv一区二区三区| 日韩精品三区四区| 欧美精品乱人伦久久久久久| 亚洲国产人成综合网站| 在线观看亚洲a| 一区二区三区欧美| 欧美在线啊v一区| 一区二区三区美女视频| 91福利国产精品| 亚洲一区免费视频| 欧美在线高清视频| 亚洲综合清纯丝袜自拍| 欧美羞羞免费网站| 亚洲一级二级三级| 欧美日韩一级二级| 亚洲成a人v欧美综合天堂下载| 在线观看亚洲专区| 石原莉奈一区二区三区在线观看| 色哟哟在线观看一区二区三区| 亚洲精品免费看| 欧美丝袜第三区| 日韩av一级片| 精品国产一二三区| 国产成人在线观看| 亚洲乱码中文字幕综合| 欧美色综合天天久久综合精品| 亚洲一区二区三区四区中文字幕| 欧美三级韩国三级日本一级| 日本在线不卡视频| 久久久一区二区| 成人午夜视频在线| 亚洲精品视频一区| 91精品国产色综合久久久蜜香臀| 麻豆国产一区二区| 国产精品对白交换视频| av成人动漫在线观看| 五月激情综合网| www成人在线观看| 色综合天天综合给合国产| 五月婷婷色综合| 久久夜色精品国产噜噜av| av一区二区久久| 日韩福利电影在线观看| 亚洲国产成人午夜在线一区| 国产精品一区二区在线观看不卡 | 日韩一区二区电影在线| 亚洲一区在线观看免费观看电影高清 | 亚洲国产精品欧美一二99| 欧美日韩精品一区二区天天拍小说| 极品少妇一区二区三区精品视频 | 色综合久久久久综合体桃花网| 亚洲18色成人| 国产精品午夜在线观看| 欧美一区二区私人影院日本| 成人免费av网站| 日韩av中文字幕一区二区三区| 中文字幕欧美日韩一区| 91精品一区二区三区在线观看| 不卡在线视频中文字幕| 麻豆视频一区二区| 亚洲一区二区三区影院| 国产日产欧美一区| 精品少妇一区二区三区免费观看| 99精品久久免费看蜜臀剧情介绍| 美女性感视频久久| 亚洲综合清纯丝袜自拍| 中文字幕一区二区三区乱码在线 | 综合分类小说区另类春色亚洲小说欧美| 欧美日韩国产欧美日美国产精品| 精品无人码麻豆乱码1区2区 | 欧美网站大全在线观看| 黄网站免费久久| 香蕉影视欧美成人| 亚洲人妖av一区二区| 久久日一线二线三线suv| 日韩一区二区视频| 欧美视频在线播放| 在线免费观看日本一区| 国产99久久久国产精品潘金网站| 久久精品国产99国产精品| 午夜婷婷国产麻豆精品| 亚洲精品高清视频在线观看| 国产精品午夜春色av| 精品国产一区a| 久久综合给合久久狠狠狠97色69| 日韩视频免费观看高清在线视频| 一本一道综合狠狠老| 欧美性大战久久久| 日韩无一区二区| 欧美久久一区二区| 欧美在线视频你懂得| 欧美一区二区三区四区视频| 欧洲一区二区三区免费视频| 色综合久久综合网欧美综合网| 99国产精品一区| 色综合天天天天做夜夜夜夜做| 色综合中文字幕国产| 色综合久久综合| 欧美人妇做爰xxxⅹ性高电影| 欧美年轻男男videosbes| 欧美人体做爰大胆视频| 日韩免费一区二区| 久久久久久日产精品| 欧美激情艳妇裸体舞| 亚洲欧美在线视频| 一区二区三区小说| 日韩专区欧美专区| 国产一区二区中文字幕| av亚洲精华国产精华| 91久久一区二区| 88在线观看91蜜桃国自产| 26uuu国产日韩综合| 18涩涩午夜精品.www| 一区二区三区四区亚洲| 天堂av在线一区| 国产精品99久久久久久久女警| 99精品国产91久久久久久| 欧美午夜精品电影| 2023国产精品| 一片黄亚洲嫩模| 精品一二三四区| 99这里只有精品| 欧美一区二区三区啪啪| 国产精品久久久久桃色tv| 午夜激情综合网| eeuss鲁片一区二区三区| 在线成人午夜影院| 国产女同性恋一区二区| 亚洲国产欧美一区二区三区丁香婷| 六月丁香婷婷久久| 一道本成人在线| 久久久久久久av麻豆果冻| 亚洲小说春色综合另类电影| 国产高清视频一区|