2009-02-10 5 views
1

제가 작업하고있는 응용 프로그램은 몇 가지 유형 중 하나에 속하는 스캐너를 사용하고 있습니다. 첨부 된 스캐너를 확인하고 첨부 된 스캐너 중에서 기본 스캐너를 선택하는 옵션을 제공하고 필요한 경우 언제든지이 선택 항목을 변경해야합니다. 지금까지 나는이 해결책을 생각해 냈다 :컴퓨터에 연결된 스캐너를 식별합니까?

ManagementObjectSearcher search = new System.Management.ManagementObjectSearcher("SELECT * From Win32_PnPEntity"); 

ManagementObjectCollection deviceCollection = search.Get(); 

foreach (ManagementObject info in deviceCollection) 
{ 
    string deviceName = Convert.ToString(info["Caption"]); 

    if(/* check something about deviceName */) 
    { 
     // add a scanner to the list 
    } 
} 

나는 정보 [[Caption]]에서 무엇을 기대하는지 알고 있기 때문에 나를 위해 일한다. 그러나 몇 가지 질문이 있습니다.

  • 내 장치가 "이미징 장치"아래에있을 것입니다. 모든 PnP 장치를 반복하지 않고 "이미징 장치"분기의 구성원 만 식별하는 방법이 있습니까? 단지 내 PC에서 deviceCollection에 190 개의 항목이 있다는 것을 알았습니다. 그것을 단지 한 쌍으로 필터링하는 것이 정말 좋을 것입니다. :)
  • 첨부 할 스캐너의 모델/유형에 대해 미리 알지 못하는 시나리오에서 장치가 스캐너인지 식별하는 방법이 있습니까?

답변

2
+0

이 접근 용어 컴파일 및 실행에서 '일'에 제안 당신은 Windows 이미지 인식 자동화 라이브러리를 시도 할 수 있지만, manager.DeviceInfos.Count 내가 검색하겠습니다 0입니다 그 일이 일어나는 이유. – Evgeny

+0

나는 그것이 작동해야하는 이유를 받아 들여야한다고 생각한다. 왜 그런지 모르겠다. 아마도 장치 드라이버는 WIA (???)를 지원하지 않을 것이다. – Evgeny