在 windows 下使用快捷键安全快速地移除 USB 设备

序言

默认情况下,在 windows 系统中想要移除 USB 设备(比如 U 盘)只有一种方法:用鼠标单击系统托盘 中的图标,选择你想要移除的设备。但是用鼠标的效率很低,而如果想要使用键盘快捷键来移除 USB 设备,就只能使用某些命令行程序或者用 powershell 或 ahk 脚本来调用系统 dll 来做到了。

但是有一些命令行工具和脚本并不安全,我想要的效果是如果 U 盘被占用,就不要弹出这个设备。 然而很多脚本会强制弹出设备。最后,我找到了一个比较好用的命令行工具,RemoveDrive

简介

这个工具的使用非常简单: RemoveDrive.exe d: 即可弹出盘符为 d 的 usb 设备。这个工具 在弹出设备之前会首先尝试接触占用,如果失败,则不会弹出设备,并且打印出异常信息。是我 目前见到过的最好的此类工具。

一个脚本

为了便于使用快捷键弹出设备,我写了一个 ahk 脚本。把它跟上文的 exe 文件放在一起, 启动时会列出电脑上所有的可移除设备,只需要在键盘上敲出盘符(不需要冒号)然后按下回车 即可自动调用上述的 exe 来弹出设备。现在只需要给这个脚本分配一个快捷键就好了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
;确定可弹出的驱动器列表
DriveList = Empty
DriveGet, DriveList, List, REMOVABLE

if DriveList
goto, start_eject

MsgBox, 没有需要弹出的驱动器
return

start_eject:

InputBox, Driveletter, 请输入要弹出的盘符 , %DriveList%
if ErrorLevel=1
return

StringUpper, Driveletter, Driveletter ;将用户输入的盘符转换成大写

IfInString, Driveletter, %DriveList%
{
Driveletter = %Driveletter%:
Runwait, RemoveDrive.exe %Driveletter%

}
else
{
Msgbox, 请输入一个列表中的盘符
goto, start_eject
}

本作品采用 署名-相同方式共享 4.0 国际 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 “不科学的科学君” (Liu233w) 与博客链接: https://liu233w.github.io ,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系

加载评论框需要翻墙