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

时间:2013-02-04 15:42:55

标签: c# .net c#-4.0

我有一个我正在研究的项目,我想使用这些: http://www.woot.com/blog/post/usb-powered-woot-off-lights-2

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

我无法找到需要多少安培,但我知道如果200毫安用于一个电源关灯就足够了,这个扩展是完美的。

USB Controler Extension

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扩展。

to turn on/off my a USB fan and a battery powered small lamp

答案 2 :(得分:1)

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

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

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

  3. USB Serial Converter in device manager

    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();
      
    2. 再次启用它。

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