一、关于 USB
最近对 USB 设备做了一些学习,简单做一下整理,希望感兴趣的同学留言交流,最后会附上源码连接。
简单列一些关键点:
VID:Vendor ID(生产厂商 ID),PID:Product ID(产品 ID)
【USB ID 详细介绍可以参考】【厂商设备 ID - List of USB ID’s】
二、关于 USB 磁盘信息
1、devcon 获取信息
devcon 可通过两个指令获取 USB 信息:
1. devcon.exe find usb* //查看所有的 USB 设备信息
2. devcon.exe status usb* //查看所有 USB 设备状态
2、注册表获取 USB 设备信息
1. 查看所有 USB 存储设备列表
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR\Enum
2. 查看驱动器号
计算机\HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
3. 查看驱动器号和 USB 设备对照
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume
三、主要代码
1、process 启动和带权限运行
/// <summary>
/// 创建进程
/// </summary>
/// <returns></returns>
public static Process NewProcess(string exe, string args = "", string domain = "", string username = "", string password = "")
{
ProcessStartInfo startInfo = new ProcessStartInfo();
if (Str.Ok(domain)) startInfo.Domain = domain;
if (Str.Ok(username)) startInfo.UserName = username;
if (Str.Ok(password)) startInfo.Password = ConvertToSecureString(password);
startInfo.FileName = exe;
startInfo.Arguments = args;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
startInfo.Verb = "RunAs";
Process process = new Process();
process.StartInfo = startInfo;
return process;
}
/// <summary>
/// 带权限运行的密码保密文本转换
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
private static SecureString ConvertToSecureString(this string password)
{
if (password == null)
throw new ArgumentNullException("password");
unsafe
{
fixed (char* passwordChars = password)
{
var securePassword = new SecureString(passwordChars, password.Length);
securePassword.MakeReadOnly();
return securePassword;
}
}
}
2、devcon 操作代码
1. devcon.exe enable "USB\\VID_1234&PID_5678" //启用 USB 设备
2. devcon.exe disable "USB\\VID_1234&PID_5678" //禁用 USB 设备
四、程序截图
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQDOxEzX3xCZlhXam9VbsUmepNXZy9CXwJWZ3xCdh1mcvZ2Lc1zaHRGcWdUYuVzVa9GczoVdG1mWfVGc5RHLwIzX39GZhh2csATMflHLwEzX4xSZz91ZsAzMfRHLGZkRGZkRfJ3bs92YskmNhVTYykVNQJVMRhXVEF1X0hXZ0xiNx8VZ6l2cssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL0ADN1MmNyczN4kzYhVzNzYzXwADOzETM3EzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)