/// <summary> /// Realiza conexão com o dispositivo de câmera. /// </summary> /// <param name="cameraInfo">Dispositivo de câmera a ser conectado.</param> /// <returns>True, se a conexão foi estabelecida e false, caso contrário.</returns> public bool ConnectToDevice(WIACameraInfo cameraInfo) { // cria um novo gerenciador de dispositivos WIA.DeviceManagerClass deviceMgr = new WIA.DeviceManagerClass(); try { // flag para indicar se encontrou ou não o dispositivo bool foundDevice = false; // procura pelo dispositivo foreach (WIA.DeviceInfo deviceInfo in deviceMgr.DeviceInfos) { if (deviceInfo.DeviceID == cameraInfo.DeviceID) { // tenta conexão com o dispositivo this.connectedDevice = deviceInfo.Connect(); foundDevice = true; break; } } // verifica se encontrou dispositivo return(foundDevice); } catch { return(false); } }
/// <summary> /// Lista dispositivos de câmera conectados ao computador. /// </summary> /// <returns>Uma lista com as informações de cada dispositivo.</returns> public static List <WIACameraInfo> ListConnectedDevices() { // cria lista List <WIACameraInfo> cameraInfoList = new List <WIACameraInfo>(); // cria um novo gerenciador de dispositivos WIA.DeviceManagerClass deviceMgr = new WIA.DeviceManagerClass(); // loop nos dispositivos foreach (DeviceInfo deviceInfo in deviceMgr.DeviceInfos) { // verifica o tipo de dispositivo (somente câmeras) if (deviceInfo.Type == WiaDeviceType.CameraDeviceType) { // busca pela propriedade que contém a descrição do dispositivo foreach (Property deviceProperty in deviceInfo.Properties) { if (deviceProperty.Name == "Description") { // adiciona na lista cameraInfoList.Add(new WIACameraInfo(deviceInfo.DeviceID, deviceProperty.get_Value().ToString())); } } } } // retorna lista return(cameraInfoList); }
public WIA.ImageFile ScanAndSaveOnePage() { WIA.CommonDialog Dialog1 = new WIA.CommonDialogClass(); WIA.DeviceManager DeviceManager1 = new WIA.DeviceManagerClass(); System.Object Object1 = null; System.Object Object2 = null; WIA.Device Scanner = null; try { Scanner = Dialog1.ShowSelectDevice(WIA.WiaDeviceType.ScannerDeviceType, false, false); } catch { MessageBox.Show("请确认是否联系设备"); return(null); throw; } WIA.Item Item1 = Scanner.Items[1]; setItem(Item1, "4104", 24); setItem(Item1, "6146", 2); setItem(Item1, "6147", 150); setItem(Item1, "6148", 150); setItem(Item1, "6151", 150 * 8.5); setItem(Item1, "6152", 150 * 11); WIA.ImageFile Image1 = new WIA.ImageFile(); WIA.ImageProcess ImageProcess1 = new WIA.ImageProcess(); Object1 = (Object)"Convert"; ImageProcess1.Filters.Add(ImageProcess1.FilterInfos.get_Item(ref Object1).FilterID, 0); Object1 = (Object)"FormatID"; Object2 = (Object)WIA.FormatID.wiaFormatBMP; ImageProcess1.Filters[1].Properties.get_Item(ref Object1).set_Value(ref Object2); Object1 = null; Object2 = null; Image1 = (WIA.ImageFile)Item1.Transfer(WIA.FormatID.wiaFormatBMP); return(Image1); //string DestImagePath = @"C:\test.bmp"; //File.Delete(DestImagePath); //Image1.SaveFile(DestImagePath); }