亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美一区二区在线免费观看| 久久综合久久综合亚洲| 久久精品国产亚洲a| 欧美国产一区视频在线观看| 欧美日韩情趣电影| 国产v综合v亚洲欧| 午夜伦理一区二区| 亚洲欧洲av色图| 精品久久久久久久久久久院品网| 91在线小视频| 国产成人av一区二区三区在线| 亚洲成人午夜电影| 中文字幕一区视频| 久久久久一区二区三区四区| 欧美日韩久久一区| 99在线精品一区二区三区| 久久成人免费电影| 天堂午夜影视日韩欧美一区二区| 国产精品久久久久久久浪潮网站 | 欧美精品视频www在线观看| 国产成人99久久亚洲综合精品| 香蕉成人啪国产精品视频综合网| 国产精品国产馆在线真实露脸| 欧美电影免费观看高清完整版在线 | 国产精品乱码人人做人人爱| 欧美不卡一区二区| 日韩视频中午一区| 制服视频三区第一页精品| 精品视频在线看| 欧洲av一区二区嗯嗯嗯啊| www.欧美色图| 成人久久18免费网站麻豆| 国内精品国产成人| 精品在线播放午夜| 男男成人高潮片免费网站| 日韩影院免费视频| 天天爽夜夜爽夜夜爽精品视频| 亚洲综合在线第一页| 亚洲精品精品亚洲| 亚洲男女毛片无遮挡| 中文字幕亚洲一区二区va在线| 国产亚洲精品超碰| 国产日韩欧美电影| 日本一区二区三区四区| 国产日产欧美一区| 国产日韩亚洲欧美综合| 国产日韩亚洲欧美综合| 国产午夜亚洲精品午夜鲁丝片| 国产亚洲精品资源在线26u| 国产欧美日韩综合精品一区二区| 国产午夜亚洲精品不卡| 欧美国产欧美综合| 国产精品久久久久久一区二区三区 | 精品国产乱码久久久久久1区2区 | 国产专区欧美精品| 国产精品综合二区| 国产91精品一区二区麻豆亚洲| 成人一区二区三区| 色综合久久综合中文综合网| 欧美性极品少妇| 欧美日韩综合色| 777色狠狠一区二区三区| 欧美一区二区三区视频免费播放| 精品国产青草久久久久福利| 国产日产精品一区| 樱桃国产成人精品视频| 性做久久久久久久久| 经典三级一区二区| 暴力调教一区二区三区| 欧美在线三级电影| 日韩欧美区一区二| 中文字幕在线免费不卡| 亚洲第一在线综合网站| 国内精品国产成人国产三级粉色| 成人动漫精品一区二区| 欧美无乱码久久久免费午夜一区| 制服丝袜日韩国产| 中文字幕高清一区| 亚洲国产另类av| 国产一区二区三区免费| 91免费在线看| 日韩欧美视频在线| 亚洲人成7777| 男女男精品视频| 99国产精品国产精品毛片| 91精品国产手机| 久久久精品黄色| 午夜亚洲国产au精品一区二区| 国产综合久久久久久久久久久久| 一本色道久久综合亚洲91| 欧美大片一区二区三区| 日韩一区在线免费观看| 日韩av网站免费在线| 成人av电影免费在线播放| 制服丝袜中文字幕一区| 亚洲色图欧洲色图婷婷| 精品一区二区免费| 欧美最猛性xxxxx直播| 久久综合九色综合欧美98| 亚洲最大的成人av| 国产精品99久久久久久久vr | 国产一区不卡视频| 在线日韩av片| 国产人妖乱国产精品人妖| 日韩专区一卡二卡| 一本久久精品一区二区| 久久亚洲一级片| 日韩黄色小视频| 色香蕉成人二区免费| 欧美韩国一区二区| 美女国产一区二区| 欧美精品精品一区| 亚洲精品一二三区| yourporn久久国产精品| 2024国产精品| 日本一区中文字幕 | 国产午夜精品久久久久久免费视 | 日韩一区二区在线观看| 亚洲午夜私人影院| 一本在线高清不卡dvd| 久久久99精品免费观看不卡| 免费日本视频一区| 欧美日韩一区二区三区四区| 亚洲激情一二三区| 成人h精品动漫一区二区三区| 精品久久久久久久人人人人传媒| 日日夜夜精品视频天天综合网| 91久久精品一区二区三| 亚洲码国产岛国毛片在线| 粉嫩欧美一区二区三区高清影视 | 中文字幕亚洲一区二区va在线| 国产福利91精品一区| 精品免费一区二区三区| 免费一级片91| 欧美不卡一区二区| 九九视频精品免费| 久久色视频免费观看| 久久精品噜噜噜成人88aⅴ| 51久久夜色精品国产麻豆| 丝袜诱惑制服诱惑色一区在线观看| 欧美三级在线看| 亚洲一线二线三线久久久| 在线视频欧美精品| 亚洲第一在线综合网站| 欧美日韩高清一区二区不卡| 偷拍亚洲欧洲综合| 欧美一区二区女人| 久久99精品久久久久久国产越南 | 欧美tickling网站挠脚心| 久久综合综合久久综合| 久久人人97超碰com| 国产69精品久久99不卡| 亚洲欧洲成人自拍| 欧美性极品少妇| 日韩主播视频在线| 欧美成人精品福利| 国产不卡在线播放| 亚洲精品乱码久久久久久日本蜜臀| 欧美三级视频在线| 美女视频一区在线观看| 国产婷婷色一区二区三区在线| 国产成人无遮挡在线视频| 亚洲日本电影在线| 欧美日韩国产精品成人| 经典三级视频一区| 国产精品久久看| 欧美日韩黄色一区二区| 久久99精品久久久久久国产越南| 欧美国产一区二区| 欧美中文一区二区三区| 另类综合日韩欧美亚洲| 国产精品国产精品国产专区不蜜| 欧美午夜宅男影院| 极品尤物av久久免费看| **欧美大码日韩| 欧美一级黄色片| 波多野结衣在线一区| 亚洲777理论| 中文字幕欧美区| 欧美性色欧美a在线播放| 九九精品一区二区| 亚洲人被黑人高潮完整版| 日韩三级高清在线| 91麻豆国产精品久久| 免费的国产精品| 亚洲四区在线观看| 日韩精品一区二区三区中文不卡 | 中文字幕一区不卡| 91精品国产一区二区| 94-欧美-setu| 久久av中文字幕片| 亚洲一区在线观看视频| 久久网站热最新地址| 欧美亚洲综合在线| 国产suv精品一区二区883| 调教+趴+乳夹+国产+精品| 国产目拍亚洲精品99久久精品 | 亚洲国产高清在线观看视频| 欧美区一区二区三区| 9人人澡人人爽人人精品|