找回密码
 立即注册

微信登录

只需一步,快速开始

QQ登录

只需一步,快速开始

查看: 16|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2025-3-8 16:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    2

    主题

    25

    回帖

    276

    积分

    3期培训会员

    积分
    276
    来自: 中国山东济南
    发表于 前天 14:48 | 显示全部楼层 |阅读模式 来自: 中国山东济南
    非业余 - aardio 编程语言 - 非官方问答社区 - 免责声明
    非业余(bbs.feiyeyu.com)所讨论的技术及相关工具源码,仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。非业余(bbs.feiyeyu.com)不承担任何因为技术滥用所产生的连带责任。非业余(bbs.feiyeyu.com)内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ微信与我们联系处理。站长邮箱:my69@vip.qq.com
    本帖最后由 15106970607 于 2025-12-29 14:50 编辑

    1.单个USB设备

    [AAuto] 纯文本查看 复制代码
    // 检测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设备
    [AAuto] 纯文本查看 复制代码
    /*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[config.control];
            if(isConnected) {
                control.color = 0x000000;
                control.text = "已连接";
            } else {
                control.color = 0xA4A0A0;
                control.text = "未连接";
            }
        }
    }
    /*}}*/

    非业余 - aardio 编程语言 - 非官方问答社区 - 免责声明
    风行者三期培训:Aardio+Python+Flutter,1000集课程让你成为全栈开发高手!https://mp.weixin.qq.com/s/_WOoHFtITUyLk2k7BXYGkg
    Aardio培训大揭秘,轻松上手打造个人项目!https://mp.weixin.qq.com/s/cr47qhp_Cpz0p57lbbPwug
    aardio风行者第二期培训班https://mp.weixin.qq.com/s/uB6XHUDnGSk0JlWuiBE9AA
    aardio风行者第三期培训班https://mp.weixin.qq.com/s/cdZcvFiAWhlYTaSrQGCPvA
    回复

    使用道具 举报

    *滑块验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|非业余 - aardio 编程语言 - 非官方问答社区 知道创宇云防御

    GMT+8, 2025-12-31 06:48 , Processed in 0.106910 second(s), 26 queries .

    Powered by Discuz! X3.5

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表