zoukankan      html  css  js  c++  java
  • C# 访问USB(HID)设备方法 (转)

    依次使用一下函数:

    1、static public extern void HidD_GetHidGuid (ref System.Guid HidGuid);

          获取HID的全局GUID

    2、static public extern IntPtr SetupDiGetClassDevs(ref System.Guid ClassGuid,

        string Enumerator,

        int hwndParent,

        int Flags);

          获取所有hid句柄

    3、static public extern int SetupDiEnumDeviceInterfaces(IntPtr DeviceInfoSet,

        int DeviceInfoData,

        ref System.Guid InterfaceClassGuid,

        int MemberIndex,

        ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData);

      检测集合每个接口,成功返回true

    4、 static public extern bool SetupDiGetDeviceInterfaceDetail(IntPtr DeviceInfoSet,

        ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData,

        IntPtr DeviceInterfaceDetailData,

        int DeviceInterfaceDetailDataSize,

        ref int RequiredSize,

        IntPtr DeviceInfoData);

      获取接口信息,第一次失败 但可获得信息缓冲区大小

    5、 static public extern bool SetupDiGetDeviceInterfaceDetail(IntPtr DeviceInfoSet,

        ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData,

        IntPtr DeviceInterfaceDetailData,

        int DeviceInterfaceDetailDataSize,

        ref int RequiredSize,

        IntPtr DeviceInfoData);

      第二次获取

    循环 3、4、5把所有的设备读取,把所有设备路径名存放在一个数组里devicePathName

    6、 CreateFile(string lpFileName,

        uint dwDesiredAccess,

        uint dwShareMode,

        ref SECURITY_ATTRIBUTES lpSecurityAttributes,

        int dwCreationDisposition,

        uint dwFlagsAndAttributes,

        int hTemplateFile);

      根据devicePathName链接文件

    以上步骤成功就可以读写USB了

  • 相关阅读:
    java 构造函数内部的多态方法 完全剖析
    Android 高仿微信 获取最近刚刚拍照的缩略图 功能实现
    Android 高仿豌豆荚 一键安装app 功能 实现
    Android Bitmap实战技巧
    Android 异步加载神器Loader全解析
    Android 开源项目PhotoView源码分析
    细数Android开源项目中那些频繁使用的并发库中的类
    js 压缩图片 H5
    上传从剪贴板复制的图片
    moble 设备多指手势识别 (tap , double_tap , pinch)
  • 原文地址:https://www.cnblogs.com/gr816/p/7903796.html
Copyright © 2011-2022 走看看