实现插入usb设备界面能提示插入了这个设备功能
By
admin
at 2017-12-10 • 0人收藏 • 1143人看过
参考了aar的官方示例u盘检测:然后修改下面的
import win.ui; /*DSG{{*/ var winform = win.form(text="自动检测插入U盘";right=740;bottom=296) winform.add( edit={cls="edit";text="请插入设备";left=15;top=15;right=726;bottom=263;edge=1;multiline=1;z=1} ) /*}}*/ import win.util.deviceNotification; var deviceNotification = win.util.deviceNotification(winform) deviceNotification.onDeviceArrival = function(devicetype,deviceBroadcastData,ptrData){ if( devicetype == 5/*_DBT_DEVTYP_DEVICEINTERFACE*//**2/*_DBT_DEVTYP_VOLUME*/**/ ){ winform.edit.print("发现了设备",deviceBroadcastData.name); } } deviceNotification.onDeviceRemoveComplete = function(devicetype,deviceBroadcastData,ptrData){ if( devicetype == 5 ){ winform.edit.print("移除设盘" + " " + deviceBroadcastData.name ) } } winform.show() win.loopMessage();
说明:
框架调用这个函数以通知应用程序或设备驱动程序,设备或计算机的硬件配置发生了改变。
对于提供了软件控制功能,如弹出和锁定的设备,操作系统通常发送一条DBT_DEVICEREMOVEPENDING消息,以便使应用程序和设备驱动程序停止对设备的使用。
如果操作系统强行清除了一个设备,它可能不会发送DBT_DEVICEQUERYREMOVE消息。
nEvent参数可以是下列值之一:
· | DBT_DEVICEARRIVAL | 已经加入了一个设备,现在可以使用。 |
· | DBT_DEVICEQUERYREMOVE | 允许清除被请求的设备。任何应用程序都可以拒绝这个请求并取消清除操作。 |
· | DBT_DEVICEQUERYREMOVEFAILED | 清除设备的请求被取消了。 |
· | DBT_DEVICEREMOVEPENDING | 设备将要被清除。不能拒绝。 |
· | DBT_DEVICEREMOVECOMPLETE | 设备已经被清除。 |
· | DBT_DEVICETYPESPECIFIC | 与设备有关的事件。 |
· | DBT_CONFIGCHANGED | 当前配置发生了变化。 |
· | DBT_DEVNODES_CHANGED | 设备节点发生了变化。 |
注意 框架调用这个成员函数以允许你的应用程序处理一个Windows消息。传递给你的成员函数的参数反映了接收到消息时框架接收到的参数。如果你调用了这个函数的基类实现,则该实现将使用最初传递给消息的参数(而不是你提供给这个函数的参数)。
程序里为什么是5/*_DBT_DEVTYP_DEVICEINTERFACE*/
登录后方可回帖