2009-02-10 31 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 
    } 
} 

這對我的作品,因爲我知道在信息[「標題」]會發生什麼。 但是,有幾個問題:

  • 我知道我的設備將在「成像設備」下。有沒有一種方法可以只識別「成像設備」分支的成員,而無需遍歷每個PnP設備?剛剛發現在我的PC上deviceCollection有190個條目。將它過濾到只是一對夫婦真的很好。 :)
  • 有沒有一種方法可以識別設備是掃描儀,對於我不知道將要連接的掃描儀的型號/類型的情況?

回答

2

你可以嘗試用Windows Image Acquisition自動化庫爲this thread

+0

這種方法「作品」的條款編譯和運行的建議,但manager.DeviceInfos.Count爲0。我會繼續尋找該爲什麼會發生這種情況。 – Evgeny 2009-02-10 03:48:21