以编程方式关闭USB端口电源

Sug*_*ime 5 .net c# c#-4.0

我有一个项目,我正在努力,我想使用它们:http: //www.woot.com/blog/post/usb-powered-woot-off-lights-2

然而,看起来他们只有开/关开关.它们不是您可以通过编程方式进行交互的东西.

所以我在想,如果我能找到一种方法来切断USB端口的电源,这将允许我用我的应用程序打开和关闭灯.但是我找不到任何方法来切断USB端口的电源.这可能吗?

小智 5

我遇到了类似的问题并使用 DevManView.exe(免费软件)解决了它:

  1. 下载 DevManView.exe 并将 .exe 文件放在某处: http://www.nirsoft.net/utils/device_manager_view.html

  2. 转到您的设备管理器并找出您必须启用/禁用哪个 USB 控制器,以便您的设备能够/不再获得电源。对我来说,禁用“USB 串行转换器”确实会切断所有 USB 插槽的电源。

设备管理器中的USB串行转换器

  1. 在 C# 中,创建并启动一个新进程来禁用设备(使用 USB 控制器的名称)。

    Process devManViewProc = new Process();
    devManViewProc.StartInfo.FileName = @"<path to DevManView.exe>\DevManView.exe";
    devManViewProc.StartInfo.Arguments = "/disable \"USB Serial Converter\"";
    devManViewProc.Start();
    devManViewProc.WaitForExit();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 并再次启用它。

    devManViewProc.StartInfo.Arguments = "/enable \"USB Serial Converter\"";
    devManViewProc.Start();
    devManViewProc.WaitForExit();
    
    Run Code Online (Sandbox Code Playgroud)


小智 -1

如果您具有管理员权限,请运行以下命令:

Microsoft.Win32.Registry.SetValue(@"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", 4, Microsoft.Win32.RegistryValueKind.DWord); 
Run Code Online (Sandbox Code Playgroud)

  • 这实际上并不会切断 USB 端口的电源,而是禁用 USB 存储设备的电源。这也不是针对特定端口,而是针对所有端口。这里的“4”是“禁用”的值,“3”是“启用”的值。 (3认同)