コンピュータに接続されているスキャナを特定しようとしています。考えられる解決策の 1 つは、WIA (Windows Image Acquisition Automation Library) を使用することです。
これまでの私の行動は次のとおりです。
- wiaaut.dll のダウンロード
- system32 にコピーします。
- 「regsvr32 wiaaut.dll」で登録(成功)
- Visual Studio.NET で自分のプロジェクトへの参照を追加する
- Windows Image Acquisition (WIA) サービスが実行されていることを確認します
次に、次のコードを追加してデバッグします。
WIA.DeviceManager manager = new WIA.DeviceManagerClass();
string deviceName = "";
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
if (info.Type == WIA.WiaDeviceType.ScannerDeviceType)
{
foreach (WIA.Property p in info.Properties)
{
if (p.Name == "Name")
{
deviceName = ((WIA.IProperty)p).get_Value().ToString();
Console.WriteLine(deviceName);
}
}
}
}
ただし、manager.DeviceInfos は常に空です。2 つのスキャナーが接続されています。そのうちの 1 つは [コントロール パネル] -> [スキャナーとカメラ] に表示され、もう 1 つは表示されず、両方ともデバイス マネージャーの [イメージング デバイス] に表示されます。
WIA.DeviceManager.DeviceInfos に何も表示されない理由について何か提案はありますか?
Windows XP Service Pack 2 での実行