实现插入usb设备界面能提示插入了这个设备功能
By
admin
at 2017-12-10 • 0人收藏 • 1240人看过
参考了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*/

登录后方可回帖