15106970607 发表于 2025-12-29 14:48:55

抛砖引玉之USB设备检测函数 ,有好的方法请回帖

本帖最后由 15106970607 于 2025-12-29 14:50 编辑

1.单个USB设备

// 检测USB设备的函数
checkUsbDevice = function(){
    import com.wmi;
    // WMI查询USB设备
    var devices1 = com.wmi.getTable("SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE '%VID_33C3&PID_7788%'");
    if(#devices1 > 0){
      //如果存在就...
    }
    else {      
      //如果不存在就...               
    }   
}
2.多个USB设备
/*DICTUSB{{*/
checkUsbDevice = function(mainForm) {
    import com.wmi;
   
    // 定义设备配置数组,方便管理和扩展
    var deviceConfigs = [
      {
            ids: ["%VID_04D9&PID_A09F%"],
            control: "static11"
      },
      {
            ids: ["%VID_04D9&PID_A1D0%", "%VID_04D9&PID_A243%"],
            control: "static12"
      },
      {
            ids: ["%VID_3554&PID_FB11%", "%VID_3554&PID_FB10%" , "%VID_3554&PID_F514%" , "%VID_3554&PID_F511%"],
            control: "static13"
      },
      {
            ids: ["%VID_9978&PID_7001%", "%VID_9978&PID_6001%"],
            control: "static14"
      },
      {
            ids: ["%VID_0416&PID_7410%"],
            control: "static21"
      },
      {
            ids: ["%VID_1A81&PID_2090%"],
            control: "static22"
      },
      {
            ids: ["%VID_352D&PID_23BE%"],
            control: "static23"
      }
    ];
      
// 统一处理所有设备检测
    for(i, config in deviceConfigs) {
      var isConnected = false;
      
                // 检查该设备的所有可能ID
      for(j, id in config.ids) {
            // 使用 ++ 连接字符串
            var devices = com.wmi.getTable("SELECT * FROM Win32_PnPEntity WHERE DeviceID LIKE '" ++ id ++ "'");
            if(#devices > 0) {
                isConnected = true;
                break;
            }
      }

      // 更新UI状态
      var control = mainForm;
      if(isConnected) {
            control.color = 0x000000;
            control.text = "已连接";
      } else {
            control.color = 0xA4A0A0;
            control.text = "未连接";
      }
    }
}
/*}}*/
页: [1]
查看完整版本: 抛砖引玉之USB设备检测函数 ,有好的方法请回帖