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

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

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

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

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

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

电动熄灯2通过常规usb插头供电,这意味着它们的电压为5伏,每一个灯和一个电机都有。

我找不到需要多少安培,但我知道如果200毫安的一个动力灯关灯足够,这个扩展将是完美的。

USB控制器扩展

C#或VB.NET代码看起来像这样。

 // On nusbio.GPIOS[NusbioGpio.Gpio0].DigitalWrite(true); nusbio.GPIOS[NusbioGpio.Gpio1].DigitalWrite(true); // Off nusbio.GPIOS[NusbioGpio.Gpio0].DigitalWrite(false); nusbio.GPIOS[NusbioGpio.Gpio1].DigitalWrite(false); 

请访问www.Nusbio.net,我认为扩展程序在他们的商店中。 我自己使用了类似的nusbio扩展。

打开/关闭我的USB风扇和电池供电的小灯

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

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

  2. 转到您的设备管理器,找出您必须启用/禁用哪个USB控制器,以便您的设备不再获得电源。 对我来说,禁用“USB Serial Converter”确实会削减所有USB插槽的电源。

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

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

     Process devManViewProc = new Process(); devManViewProc.StartInfo.FileName = @"\DevManView.exe"; devManViewProc.StartInfo.Arguments = "/disable \"USB Serial Converter\""; devManViewProc.Start(); devManViewProc.WaitForExit(); 
  2. 并再次启用它。

     devManViewProc.StartInfo.Arguments = "/enable \"USB Serial Converter\""; devManViewProc.Start(); devManViewProc.WaitForExit();