VB.net操作USB设备问题

the_else 2009-12-08 09:36:35
USB设备在设备管理器中如果识别为mass设备或者HID设备.net是否能进行通信呢?
最好能实时队USB设备的插入、拔出、数据收发能实时响应,只在外国网站上看见有针对HID设备的源代码,不知道是否可用,

当然如果识别为虚拟串口也可以但好像不能实时侦测USB设备的插入与拔去,不可能一直循环打开虚拟串口吧。

分数不多,知道的留句话也好
...全文
516 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
nandi_1 2009-12-09
  • 打赏
  • 举报
回复
全部用api函数实现比较繁琐,可以用windriver写个驱动程序(里面有示例修改一下应该很快的),然后你的vb.net程序去和这个驱动程序交流
Daimon 2009-12-09
  • 打赏
  • 举报
回复
來打醬油的!~
wtnu200 2009-12-09
  • 打赏
  • 举报
回复
飘过.顶,学习...接分...
jmmaj 2009-12-09
  • 打赏
  • 举报
回复
学习学习
@@
the_else 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 going1981 的回复:]
获取插拔事件倒是不难

VB.NET code#Region "WndProc常量"PublicConst WM_DEVICECHANGEAsInteger=&H219PublicConst DBT_DEVICEARRIVALAsInteger=&H8000PublicConst DBT_CONFIGCHANGECANCELEDAsInteger=&H19PublicConst DBT_CONFIGCHANGEDAsInteger=&H18PublicConst DBT_CUSTOMEVENTAsInteger=&H8006PublicConst DBT_DEVICEQUERYREMOVEAsInteger=&H8001PublicConst DBT_DEVICEQUERYREMOVEFAILEDAsInteger=&H8002PublicConst DBT_DEVICEREMOVECOMPLETEAsInteger=&H8004PublicConst DBT_DEVICEREMOVEPENDINGAsInteger=&H8003PublicConst DBT_DEVICETYPESPECIFICAsInteger=&H8005PublicConst DBT_DEVNODES_CHANGEDAsInteger=&H7PublicConst DBT_QUERYCHANGECONFIGAsInteger=&H17PublicConst DBT_USERDEFINEDAsInteger=&HFFFF#End RegionProtectedOverridesSub WndProc(ByRef mAs System.Windows.Forms.Message)If m.Msg= WM_DEVICECHANGEThenSelectCase m.WParamCase DBT_DEVICEARRIVAL :MsgBox("插啊")Case DBT_DEVICEREMOVECOMPLETE :MsgBox("拔啦")CaseElseEndSelectEndIfMyBase.WndProc(m)End Sub

如何识别设备就不会了。肯定有高手会的。

顶!

[/Quote]

学习
mania001 2009-12-09
  • 打赏
  • 举报
回复
学习 10楼。
the_else 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lang_csdn 的回复:]
呵呵!!我接分也是很卖力的啊。
[/Quote]

555555555555,明显都是等着接分的
mania001 2009-12-08
  • 打赏
  • 举报
回复
我也是来学习的。 呵呵
lang_csdn 2009-12-08
  • 打赏
  • 举报
回复
呵呵!!我接分也是很卖力的啊。
the_else 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 the_else 的回复:]
USB设备在设备管理器中如果识别为mass设备或者HID设备.net是否能进行通信呢?
最好能实时队USB设备的插入、拔出、数据收发能实时响应,只在外国网站上看见有针对HID设备的源代码,不知道是否可用,

当然如果识别为虚拟串口也可以但好像不能实时侦测USB设备的插入与拔去,不可能一直循环打开虚拟串口吧。

分数不多,知道的留句话也好
[/Quote]
你是来接分的,哈哈
lang_csdn 2009-12-08
  • 打赏
  • 举报
回复
我帮你顶!

我来学习的!
一只熊猫 2009-12-08
  • 打赏
  • 举报
回复
获取插拔事件倒是不难

#Region "WndProc常量"
Public Const WM_DEVICECHANGE As Integer = &H219
Public Const DBT_DEVICEARRIVAL As Integer = &H8000
Public Const DBT_CONFIGCHANGECANCELED As Integer = &H19
Public Const DBT_CONFIGCHANGED As Integer = &H18
Public Const DBT_CUSTOMEVENT As Integer = &H8006
Public Const DBT_DEVICEQUERYREMOVE As Integer = &H8001
Public Const DBT_DEVICEQUERYREMOVEFAILED As Integer = &H8002
Public Const DBT_DEVICEREMOVECOMPLETE As Integer = &H8004
Public Const DBT_DEVICEREMOVEPENDING As Integer = &H8003
Public Const DBT_DEVICETYPESPECIFIC As Integer = &H8005
Public Const DBT_DEVNODES_CHANGED As Integer = &H7
Public Const DBT_QUERYCHANGECONFIG As Integer = &H17
Public Const DBT_USERDEFINED As Integer = &HFFFF
#End Region

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_DEVICECHANGE Then
Select Case m.WParam
Case DBT_DEVICEARRIVAL : MsgBox("插啊")
Case DBT_DEVICEREMOVECOMPLETE : MsgBox("拔啦")
Case Else
End Select
End If
MyBase.WndProc(m)
End Sub


如何识别设备就不会了。肯定有高手会的。

顶!
mirandali 2009-12-08
  • 打赏
  • 举报
回复
一般硬件接口都是用VC来做,VB的据说不太灵活,俺也没做过,呵呵
yuanhuiqiao 2009-12-08
  • 打赏
  • 举报
回复
没弄过,按说可以
jmmaj 2009-12-08
  • 打赏
  • 举报
回复
这个分不够啊,这个插拔我花了两年才找到的

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧