IT

현재 컴퓨터에 설치된 디바이스 장치 정보 알아오기

self log 2009. 2. 9. 23:37

System.ServiceProcess 네임 스페이스를 사용한다
 

private void InitList()
{
  ServiceController [] controllers = ServiceController.GetDevices();
  int nNum = controllers.Length;
  string strType = new String ("");
  m_wndDriversList.ListItems.Clear ();

  for (int i = 0; i < nNum; i++)
  {
    ListItem item = new ListItem ();
    // 서비스의 짧은 이름을 가져온다..
    item.Text = controllers[i].ServiceName;
    // 서비스의 긴 이름을 가져온다..
    item.SetSubItem (0, controllers[i].DisplayName);
    // 서비스 타입을 가져온다.
    ServiceType type = controllers[i].ServiceType;

    switch (type)
    {
      case ServiceType.Adapter:
      strType = "Adapter";
      break;

      case ServiceType.FileSystemDriver:
      strType = "File System Driver";
      break;

      case ServiceType.InteractiveProcess:
      strType = "Interactive Process";
      break;

      case ServiceType.KernelDriver:
      strType = "Kernel Mode Driver";
      break;

      case ServiceType.RecognizerDriver:
      strType = "Recognizer Driver";
      break;

      case ServiceType.Win32OwnProcess:
      strType = "Win32 Process";
      break;

      case ServiceType.Win32ShareProcess:
      strType = "Win32 Share Process";
      break;

      default:
      strType = "Unknown";
      break;
    }
    item.SetSubItem (1, strType);

    //서비스의 동작 여부를 알아온다.

    item.SetSubItem (2, (controllers[i].CanStop == true) ? "Yes" : "No");
    m_wndDriversList.ListItems.Add (item);
  }
}

출처 : http://www.mkexdev.net