用vbs确定计算机是否有 USB 2.0 端口的代码_vbs

问:
您好,脚本专家!有没有办法使用脚本来确定计算机是否有 USB 2.0 端口?
-- RD
答:
您好,RD。您熟悉电影疯狂星期五 (Freaky Friday) 吗,电影中母亲和女儿交换了身体(及角色)?嗯,我们的这个问题中有点类似疯狂星期五的东西。毕竟,在本专栏中本来应该由“脚本专家”来帮助您。但是,此问题实际上却帮助了一位“脚本专家”。他原来一直在尝试测试 USB 设备(未成功),而且几乎已经把这项工作视为毫无意义。但是当阅读到您的问题时,他心中暗想,“哎呀,对啊:USB 1.1 和 USB 2.0”。他在 USB 1.1 插槽中一尝试测试该设备(对照 2.0 插槽),问题马上就解决了。
嗨,没有人说过这个特别的“脚本专家”是天才。(编辑附注:我为此证明。)
我们欠您一份情,RD;我们该如何报答您呢?好主意:也许我们可以从回答您的问题开始。好的,这里有一个脚本,它很可能返回计算机上 USB 2.0 端口的数量。让我们先看代码,然后再解释我们说它“很可能”返回端口数量的原因:

复制代码 代码如下:

strComputer = "." 
i = 0 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colControllers = objWMIService.ExecQuery _ 
    ("Select * From Win32_USBController") 
For Each objController in colControllers 
    If Instr(objController.Name, "Enhanced") Then 
        i = i + 1 
    End If 
Next 
Wscript.Echo "No. of USB 2.0 Ports: " & i 

这个脚本首先为两个变量进行了赋值。为变量 strComputer 赋予了点 (.),点(WMI 表示法)代表本地计算机。同时,为计数器变量 i 赋值 0;我们将使用此变量来作为所有找到的 USB 2.0 端口的活动计数器。
连接到 WMI 服务后,我们使用此查询返回所有 Win32_USBController 类的实例:
Set colControllers = objWMIService.ExecQuery _
    ("Select * From Win32_USBController")
在此我们设置一个 For Each 循环来遍历集合(集合当然是代表计算机上的所有 USB 端口)中的每一项。遗憾的是,Win32_USBController 类不包含可告诉我们 USB 版本的属性(如 Version),实际上,并没有明确的方法来查看 USB 插槽的属性并了解它是 1.1 版本还是 2.0 版本。不过,大部分 2.0 端口均在名称中的某个位置包含 Enhanced 一词。我们不能保证所有端口均如此,这就是我们说此脚本很可能返回计算机上 USB 2.0 端口数量的原因。但是,在办公室里的随机测试中,此方法似乎行得通;发现 2.0 插槽时它总是有类似下面的名称:
VIA USB Enhanced Host Controller
那么,这对我们有何帮助呢?嗯,这表示我们可以使用 InStr 函数来查看 Enhanced 一词是否出现在每个插槽的 Name 中:
If Instr(objController.Name, "Enhanced") Then
如果 InStr 返回值 True(从技术角度来说,如果它返回比 0 大的值),则表示在名称中某处发现了 Enhanced 一词。在这种情况下,我们会将 i 值加 1:
i = i + 1
如果 InStr 返回 0,表示找不到Enhanced 一词怎么办?嗯,在这种情况下,我们就进入下一个循环并尝试集合中的下一项,i 值保持不变。
我们继续进行查询,每次找到名称中有 Enhanced 的 USB 插槽即增加 i 值。当全部完成后,我们只需回显 i 值,它将告诉我们计算机上 USB 2.0 端口的数量。
它并不一定是万无一失的方法,但好像还管用。而且,您知道,这和您为我们做事还不一样。
哦,对了;我们忘记了一件事。嗯,您或许喜欢巧克力?

时间: 2024-10-10 09:29:21

用vbs确定计算机是否有 USB 2.0 端口的代码_vbs的相关文章

[小白技巧]如何在Linux中知道你的系统是否有USB 3.0 端口

[小白技巧]如何在Linux中知道你的系统是否有USB 3.0 端口 近来的大多数的新计算机都有了USB 3.0接口了.但是你怎么知道你的计算机有没有USB 3.0接口?这篇短文中,我们会告诉如何在Linux下知道你的系统上有USB 3还是USB3接口. 在Linux终端中检测是否有USB 3.0 端口 打开一个终端,并使用下面的命令: lsusb 这个命令会显示你系统下USB的总线信息.检查一下结果,如果你看到像"3.0 root hub"字样,这意味着你系统有USB 3.0.比如,

黑客可通过 USB 3.0 端口完全控制使用英特尔第六/七代处理器的PC

2015年英特尔发布了其第六代处理器和芯片集"Skylake",其中引入了名为"直连接口(DCI)"的新技术,供测试员不开箱调试硬件.然而,汉堡第33届混沌通信大会上,Positive Technologies 安全研究人员马克西姆·葛亚奇和马克·厄莫洛夫揭露:黑客可利用DCI完全控制系统,在软件层之下进行攻击,设备拥有者根本检测不到. 为更好地理解这一情况,我们可以从联合测试行动组(JTAG)创建的调试接口开始.该标准最先是为了测试印刷电路板设计的,但后来就扩展到

一个用vbs查找硬盘所有分区中的指定程序的代码_vbs

On Error Resume Next '忽略所有错误 Dim filename '声明变量 Dim re Set re=New RegExp '建立正则表达式对象实例 re.Pattern="^([a-z]|[A-Z])+\:\\\w+\.vbs$" If re.Test(WScript.ScriptFullName)=False Then  MsgBox "请在磁盘根目录下运行本程序,否则搜索结果可能会不正确!",,"MessageBox"

用VBS修改(设置)系统时间和日期的代码_vbs

那天跟别人聊到 Y2K38 问题,于是想到一个恶作剧:用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题.那么怎样用 VBS 修改系统的时间呢? 最简单也是最没有技术含量的方法就是调用 cmd 的 date 和 time 命令: 复制代码 代码如下: 'Author: Demon 'Website: http://demon.tw 'Date : 2011/4/27 Dim WshShell Set WshShell = Cr

VBS合并一个文件夹里的TXT的实现代码_vbs

复制代码 代码如下: Const ForReading = 1 'VBS的这句不能少. dim xint,xinlu,jiuw dim objfso,objoutputfile,f,fx dim objTextFile,strtext Set objFSO = CreateObject("Scripting.FileSystemObject") '创建FSO对象 jiuw = inputbox("请输入源文件夹所在的路径(含文件夹名称)","请输入多个TX

VBS 提取狗狗影视中的ED2K连接的实现代码_vbs

打开狗狗影视,搜索自己需要的资源,资源类型选:电驴,如下图: 我找到一个 19.75GB 的: 点开它,出现如下图的界面,可以看到正常下载地址已被屏蔽.我们复制地址栏中的网址,备用. 打开从本站下载的 VBS 脚本,复制该网址到输入框,然后确定,稍过一会,会出现提示完成的消息框,这个时间的长短由你的网速决定! 最后,我们得到最终的 ED2K 连接地址,全部保存在当前目录下的 ed2k.txt 文件中: 还等什么?打开你的下载工具,开始下载吧!^_^ GetEd2kLink.VBS 代码如下,你也

用VBS实现的发送带Cookie的HTTP请求的代码_vbs

为了方便测试,先写一个回显Cookie的简单的PHP程序: 复制代码 代码如下: <?php foreach($_COOKIE as $key => $value) echo "$key => $value\r\n"; ?> 然后分别用ServerXMLHTTP和XMLHTTP测试: 复制代码 代码如下: Dim http Set http = CreateObject("Msxml2.XMLHTTP") http.open "GE

OpenBSD 现已支持 USB 3.0

从 OpenBSD 简短的发行说明可以知道,OpenBSD 现在已经支持 USB 3.0 设备! 这个声明还表示 USB 3.0 控制器支持 USB1.x 设备,将会继续改进 USB 3.0 端口. CVSROOT: /cvs Module name: src Changes by: mpi@cvs.openbsd.org 2014/11/07 09:44:18 Modified files: sys/arch/i386/conf: GENERIC sys/arch/amd64/conf: GE

宏正推全新USB 2.0 DVI双显示器KVMP多电脑切换器

宏正自动科技(ATEN International)日前推出创新2接口及4接口USB HDMI KVMP(Keyboard.Video.Mouse.及Peripheral)多计算机切换器.CS1792与CS1794新一代KVM多计算机切换器可让使用者从单一键盘.屏幕.及鼠标所组成的控制端管理多台计算机与USB接口设备,同时维持绝佳的多媒体传输质量.该两款USB HDMI KVMP多计算机切换器兼具流线造型与强大功能,适用于多媒体SOHO环境,满足游戏玩家与专业用户对于视讯与音效的高标准需求. 全