usb 视频设备 按钮消息处理 和普通usb连接的事件处理
usb 视频设备 按钮消息处理 和普通usb连接的事件处理
(c#版,c++/c可仿照修改)
最近要做个usb camera的例子,试过了很多方法,一般的usb连接的处理方法:
(1) define message variables in form class:
public const int WM_DEVICECHANGE = 0x219;
public const int DBT_DEVICEARRIVAL = 0x8000;
public const int DBT_CONFIGCHANGECANCELED = 0x0019;
public const int DBT_CONFIGCHANGED = 0x0018;
public const int DBT_CUSTOMEVENT = 0x8006;
public const int DBT_DEVICEQUERYREMOVE = 0x8001;
public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
public const int DBT_DEVICEREMOVEPENDING = 0x8003;
public const int DBT_DEVICETYPESPECIFIC = 0x8005;
public const int DBT_DEVNODES_CHANGED = 0x0007;
public const int DBT_QUERYCHANGECONFIG = 0x0017;
public const int DBT_USERDEFINED = 0xFFFF;
(2) override form class WndProc method:
protected override void WndProc(ref Message m)
{
try
{
if (m.Msg == WM_DEVICECHANGE)
{
switch (m.WParam.ToInt32())
{
case WM_DEVICECHANGE:
break;
case DBT_DEVICEARRIVAL://U盘插入
DriveInfo[] s = DriveInfo.GetDrives();
foreach (DriveInfo drive in s)
{
if (drive.DriveType == DriveType.Removable)
{
listBox1.Items.Add("U盘已插入,盘符为:" + drive.Name.ToString());
break;
}
}
break;
case DBT_CONFIGCHANGECANCELED:
break;
case DBT_CONFIGCHANGED:
break;
case DBT_CUSTOMEVENT:
break;
case DBT_DEVICEQUERYREMOVE:
break;
case DBT_DEVICEQUERYREMOVEFAILED:
break;
case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
break;
case DBT_DEVICEREMOVEPENDING:
break;
case DBT_DEVICETYPESPECIFIC:
break;
case DBT_DEVNODES_CHANGED:
break;
case DBT_QUERYCHANGECONFIG:
break;
case DBT_USERDEFINED:
break;
default:
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
base.WndProc(ref m);
}
}
此法的局限性:
对于一般的u盘(u disk/storage),可以处理u盘的insert/remove事件,但是不能处理如camera之类非存储的usb device.
转载于:https://www.cnblogs.com/SunWentao/archive/2011/10/08/2202294.html
usb 视频设备 按钮消息处理 和普通usb连接的事件处理相关推荐
- win7 计算机里显示视频,usb视频设备-在win7中,USB视频设备怎么显示啊 – 手机爱问...
2008-06-11 Windows无法识别USBWindo USB不被电脑识别,如果是系统或系统自带的驱动的原因,一般经过重启就可恢复或开机按F8进入安全模式在退出,在进入正常模式(修复受损的注册表 ...
- Windows下获取usb视频设备vendor id和product id的4种方法
之前在https://blog.csdn.net/fengbingchun/article/details/103507754 博文中介绍过如何在Linux获取usb视频设备的vendor id和pr ...
- 海思HI3518EV300作为USB视频设备的相关配置
作为USB设备,由于需求上没有要求设备需要播放声音,所以把扬声器去掉了,但是在开发过程中遇到设备插到电脑上,电脑将板子的扬声器作为了默认音频输出设备,而板子又没有扬声器,所以电脑识别扬声器失败,出现下 ...
- Linux下获取usb视频设备vendor id和product id的8种方法
在使用usb摄像头获取视频时,有时需要获取此摄像头供应商ID(vendor id, vid)和产品ID(product id, pid),这里在Linux下提供获取vid和pid的8种方法: 1. 通 ...
- 树莓派USB存储设备自动挂载并通过脚本实现自动拷贝,自动播放视频,脚本自动升级等功能...
需求: 首先需要树莓派自动挂载USB设备,然后扫描USB指定目录下文件,将相关文件拷贝至树莓派指定目录,然后通过omxplayer循环播放新拷贝文件视频 1. 树莓派实现USB存储设备自动挂载 树莓派 ...
- 【STM32学习】基于STM32F411CEU6的USB储存设备
1. 实现动机 最近打算做一下lvgl在stm32上的移植,考虑到lvgl可能会用到一些图片资源, 这样一来文件系统就很有必要了,于是想在手头的一块小板子上实现一下FatFs和USB Mass Sto ...
- 用 C# 编写 USB 存储设备使用痕迹检测和删除工具
编写 USB 存储设备使用痕迹检测和删除工具 (C# Windows Form 编程练习) [版权所有 邱秋 2014 metaphysis@yeah.net, 转载请注明出处] 第一节 准备知识 之 ...
- Linux内核USB总线--设备控制器驱动框架分析
正文 1.概述 如下图所示,USB控制器可以呈现出两种不同的状态.USB控制器作为Host时,称为USB主机控制器,使用USB主机控制器驱动.USB控制器作为Device时,称为USB设备控制器,使用 ...
- 计算机无法识别华为usb设备,华为路由A1插上USB储存设备无法识别怎么办
华为路由A1可以在插上USB储存设备(U盘.移动硬盘等)之后开启路由器的文件共享功能,将设备中的文件分享给连接到路由器wifi的用户.但如果插上USB储存设备后路由器无法识别怎么办,可能是什么原因,怎 ...
最新文章
- php手机建站,PHP免费开源建站系统含手机站V1.7.6
- 氮化镓充电器哪家好_双十二推荐入手的热门氮化镓充电器
- java thread 内存泄露_Java ThreadLocal 内存泄露问题分析及解决方法。
- 阿里云年会人机大战-技术大揭秘
- 是什么能让 APP 快速精准定位到我们的位置?
- Win10+Anaconda环境下安装PyTorch
- Ubuntu远程服务器创建新用户并赋予权限
- c语言基础知识难点,C语言基础的几个难点解析
- Qt动态映射qobject_cast()
- _Linux学习手册(二)—文件目录类命令
- 中国物联网卡的发展历史和变革
- 还在为JS闭包烦恼? FF带你一篇文章玩转闭包,某化腾听了都说好!!
- 秒杀竞拍屡创网络神话:馅饼还是美丽陷阱
- Xilinx FPGA时钟及I/O接口规划(二)
- ffmpeg 命令的使用
- swing(二十一)
- 【linux基础-1】linux下的快捷键-根目录结构-用户目录
- 用python实现卡普雷卡尔黑洞(重排求差黑洞)的计算
- 微信公众号服务器搭建
- 数学建模之出租车数目估计
热门文章
- checkbox click和change事件
- Can not find the tag library descriptor for “http://java.sun.com/jsp/jstl/core“
- jQuery Ajax请求成功后,为什么一直在error函数里
- Python3.8 安装gmpy2 教程, 无法安装gmpy2解决方案
- 【CCCC】L3-011 直捣黄龙 (30分),Dijkstra维护点权,节点数,路径条数等+路径打印
- 【职业】大一规划、体验生活、故事里
- linux向用户发送消息,Linux终端中向记录的用户发送消息
- 服务链路追踪配置mysql_学习微服务的服务链路追踪——Spring Cloud Sleuth+zipkin
- html期末作品,走完HTML和CSS,进军期末
- access游戏库不显示 ea_全球游戏公司营收一览:腾讯连续第六年霸榜