Класс ImageCaptureDevicesMonitor
В этом разделе
Отслеживает устройства захвата изображения, доступные в системе.
Объектная модель
Синтаксис
'Declaration
Public Class ImageCaptureDevicesMonitor
public class ImageCaptureDevicesMonitor
public __gc class ImageCaptureDevicesMonitor
public ref class ImageCaptureDevicesMonitor
Пример
Вот C#/VB.NET код, который демонстрирует, как отслеживать удаленные/добавленные камеры в системе:
Class ImageCaptureDeviceMonitor_Example
Public Shared Sub Test()
' create monitor
Dim monitor As New Vintasoft.Imaging.Media.ImageCaptureDevicesMonitor()
AddHandler monitor.CaptureDevicesChanged, New System.EventHandler(Of Vintasoft.Imaging.Media.ImageCaptureDevicesChangedEventArgs)(AddressOf monitor_CaptureDevicesChanged)
monitor.Timeout = 500
' show information about available devices
Dim availableDevices As System.Collections.ObjectModel.ReadOnlyCollection(Of Vintasoft.Imaging.Media.ImageCaptureDevice) = Vintasoft.Imaging.Media.ImageCaptureDeviceConfiguration.GetCaptureDevices()
If availableDevices.Count > 0 Then
System.Console.WriteLine("Available devices:")
For Each device As Vintasoft.Imaging.Media.ImageCaptureDevice In availableDevices
System.Console.WriteLine(device.FriendlyName)
Next
Else
System.Console.WriteLine("No connected devices.")
End If
' start monitoring
monitor.Start()
System.Console.WriteLine("Monitoring started.")
' wait while any key pressed
System.Console.ReadKey()
' stop monitoring
monitor.[Stop]()
End Sub
Private Shared Sub monitor_CaptureDevicesChanged(sender As Object, e As Vintasoft.Imaging.Media.ImageCaptureDevicesChangedEventArgs)
For Each device As Vintasoft.Imaging.Media.ImageCaptureDevice In e.AddedDevices
System.Console.WriteLine("Device '{0}' connected.", device.FriendlyName)
Next
For Each device As Vintasoft.Imaging.Media.ImageCaptureDevice In e.RemovedDevices
System.Console.WriteLine("Device '{0}' disconnected.", device.FriendlyName)
Next
End Sub
End Class
class ImageCaptureDeviceMonitor_Example
{
public static void Test()
{
// create monitor
Vintasoft.Imaging.Media.ImageCaptureDevicesMonitor monitor =
new Vintasoft.Imaging.Media.ImageCaptureDevicesMonitor();
monitor.CaptureDevicesChanged +=
new System.EventHandler<Vintasoft.Imaging.Media.ImageCaptureDevicesChangedEventArgs>(monitor_CaptureDevicesChanged);
monitor.Timeout = 500;
// show information about available devices
System.Collections.ObjectModel.ReadOnlyCollection<Vintasoft.Imaging.Media.ImageCaptureDevice> availableDevices =
Vintasoft.Imaging.Media.ImageCaptureDeviceConfiguration.GetCaptureDevices();
if (availableDevices.Count > 0)
{
System.Console.WriteLine("Available devices:");
foreach (Vintasoft.Imaging.Media.ImageCaptureDevice device in availableDevices)
System.Console.WriteLine(device.FriendlyName);
}
else
{
System.Console.WriteLine("No connected devices.");
}
// start monitoring
monitor.Start();
System.Console.WriteLine("Monitoring started.");
// wait while any key pressed
System.Console.ReadKey();
// stop monitoring
monitor.Stop();
}
static void monitor_CaptureDevicesChanged(object sender, Vintasoft.Imaging.Media.ImageCaptureDevicesChangedEventArgs e)
{
foreach (Vintasoft.Imaging.Media.ImageCaptureDevice device in e.AddedDevices)
System.Console.WriteLine("Device '{0}' connected.", device.FriendlyName);
foreach (Vintasoft.Imaging.Media.ImageCaptureDevice device in e.RemovedDevices)
System.Console.WriteLine("Device '{0}' disconnected.", device.FriendlyName);
}
}
Иерархия наследования
System.Object
 Vintasoft.Imaging.Media.ImageCaptureDevicesMonitor
Требования
Целевые платформы: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5
Смотрите также