在Windows 8.1上使用c#启用和禁用USB设备的任何API更改?

时间:2014-09-16 04:48:55

标签: c# windows winapi

我想将启用usb的设备从启用切换为禁用,反之亦然。 我使用NetworkAdapter api在Windows 7中切换USB,它工作正常。但是,当我为Windows 8.1使用相同的代码时,即使api已禁用我的USB设备,更改也不会反映在设备管理器中。我可以确认,一旦我弹出并重新连接usb,设备就会被禁用。 我想知道是否有任何关于Windows 8.1的api更改,我可能不知道。如果不是我在哪里错了?

我的代码是:

switch (requiredstatus)
  {
    case "Disable":
       SelectQuery query = new SelectQuery("Win32_NetworkAdapter","NetConnectionStatus=2");
       ManagementObjectSearcher search = new ManagementObjectSearcher(query);
       foreach (ManagementObject device in search.Get())
         {
          NetworkAdapter adapter = new NetworkAdapter(device);

          // Identify the adapter you wish to disable here. 
          // Here, we're selecting the LAN adapters.
          if (adapter.Name.Contains("Device1"))
            {
              //Console.WriteLine("Disable");
               adapter.Disable();
               result = true;
            }
    }
  break;
  case "Enable":
     SelectQuery query1 = new SelectQuery("Win32_NetworkAdapter","NetConnectionStatus=0");
     ManagementObjectSearcher search1 = new ManagementObjectSearcher(query1);
     foreach (ManagementObject device in search1.Get())
       {
        NetworkAdapter adapter = new NetworkAdapter(device);

         // Identify the adapter you wish to disable here. 
         // Here, we're selecting the LAN adapters.
         if (adapter.Name.Contains("Device1"))
            {
             //Console.WriteLine("Enable");
              adapter.Enable();
              result = true;
             }
        }
  break;
 } 

0 个答案:

没有答案