VintaSoft Twain .NET SDK 14.1: Руководство для .NET разработчика
В этом разделе
    Менеджер устройств TWAIN
    В этом разделе
    Менеджер устройств TWAIN - это библиотека, которая служит мостом между TWAIN-драйвером и пользовательским приложением (VintaSoft Twain .NET SDK).

    Вот список существующих менеджеров устройств TWAIN для Windows:
    1. Файл TWAIN_32.DLL - 32-битный менеджер устройств TWAIN, который совместим с спецификацией TWAIN 1.x.
      Этот менеджер устройств позволяет работать только с 32-битными драйверами TWAIN 1.x и WIA.
      Обычно TWAIN_32.DLL находится в каталоге "C:\Windows\" и входит в дистрибутивный пакет всех версий Windows.
    2. Файлы TWAINDSM.DLL и TWAINDSM32.MSM - 32-битный менеджер устройств TWAIN, который совместим с спецификацией TWAIN 2.x.
      Этот менеджер устройств позволяет работать только с 32-битными драйверами TWAIN 1.x и 2.x.
      Стандартная установка Windows не содержит менеджер устройств TWAIN и менеджер устройств нужно установить вручную. На 32-битных системах файлы менеджера устройств TWAIN должны быть помещены в каталог "C:\Windows\System32\". На 64-битных системах файлы менеджера устройств TWAIN должны быть помещены в каталог "C:\Windows\SysWow64\".
      Последнюю версию этого менеджера устройств можно найти здесь: https://github.com/twain/twain-dsm/tree/master/Releases.
    3. Файлы TWAINDSM.DLL и TWAINDSM64.MSM - 64-битный менеджер устройств TWAIN, который совместим с спецификацией TWAIN 2.x.
      Этот менеджер устройств позволяет работать только с 64-битными драйверами TWAIN 2.x.
      Стандартная установка Windows не содержит менеджер устройств TWAIN и менеджер устройств нужно установить вручную. На 64-битных системах файлы менеджера устройств TWAIN должны быть размещены в каталоге "C:\Windows\System32\".
      Последнюю версию этого менеджера устройств можно найти здесь: https://github.com/twain/twain-dsm/tree/master/Releases.

    Вот список существующих менеджеров устройств TWAIN для Linux:
    1. Файл TWAINDSM - 64-х битный менеджер устройств TWAIN, который совместим с спецификацией TWAIN 2.x.
      Стандартная установка Linux не содержит менеджер устройств TWAIN и менеджер устройств нужно установить вручную.
      Последняя версия менеджера устройств TWAIN может быть получена здесь: https://github.com/twain/twain-dsm/tree/master/Releases
      Инсталлятор устанавливает файл TWAINDSM в директорию "/Library/Frameworks/TWAINDSM.framework/".

    Вот список существующих менеджеров устройств TWAIN для macOS:
    1. Файл libtwaindsm.so - 64-х битный менеджер устройств TWAIN, который совместим с спецификацией TWAIN 2.x.
      Стандартная установка macOS не содержит менеджер устройств TWAIN и менеджер устройств нужно установить вручную.
      Последняя версия менеджера устройств TWAIN может быть получена здесь: https://github.com/twain/twain-dsm/tree/master/Releases
      Инсталлятор устанавливает файл libtwaindsm.so в директорию "/usr/local/lib/".


    Если SDK используется в 32-битном приложении для Windows:

    Если SDK используется в 64-битном приложении для Windows:

    Если SDK используется в 64-битном приложении для Linux:


    Для работы с менеджером устройств TWAIN необходимо создать копию класса Vintasoft.Twain.DeviceManager. Тип менеджера устройств TWAIN можно установить с помощью свойства Vintasoft.Twain.DeviceManager.IsTwain2Compatible. Свойство Vintasoft.Twain.DeviceManager.IsTwainAvailable позволяет проверить, присутствует ли менеджер устройств TWAIN в системе. Свойство Vintasoft.Twain.DeviceManager.TwainDllPath позволяет определить пользовательский путь к менеджеру устройств TWAIN.

    Вот пример, который демонстрирует, как проверить, установлен ли в системе менеджер устройств TWAIN:
    /// <summary>
    /// Checks that TWAIN device manager is installed in the system.
    /// </summary>
    void CheckTwain()
    {
        bool isTwainAvailable = false;
    
        // create the device manager
        using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
        {
            // specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = true;
            // if TWAIN device manager 2.x is available
            if (deviceManager.IsTwainAvailable)
            {
                System.Console.WriteLine("TWAIN device manager 2.x is available.");
                isTwainAvailable = true;
            }
    
            // specify that TWAIN device manager 1.x must be used
            deviceManager.IsTwain2Compatible = false;
            // if TWAIN device manager 1.x is available
            if (deviceManager.IsTwainAvailable)
            {
                System.Console.WriteLine("TWAIN device manager 1.x is available.");
                isTwainAvailable = true;
            }
    
            // if TWAIN device manager is NOT available
            if (!isTwainAvailable)
                System.Console.WriteLine("TWAIN device manager is NOT available.");
        }
    }
    
    ''' <summary>
    ''' Checks that TWAIN device manager is installed in the system.
    ''' </summary>
    Private Sub CheckTwain()
        Dim isTwainAvailable As Boolean = False
    
        ' create the device manager
        Using deviceManager As New Vintasoft.Twain.DeviceManager()
            ' specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = True
            ' if TWAIN device manager 2.x is available
            If deviceManager.IsTwainAvailable Then
                Console.WriteLine("TWAIN device manager 2.x is available.")
                isTwainAvailable = True
            End If
    
            ' specify that TWAIN device manager 1.x must be used
            deviceManager.IsTwain2Compatible = False
            ' if TWAIN device manager 1.x is available
            If deviceManager.IsTwainAvailable Then
                Console.WriteLine("TWAIN device manager 1.x is available.")
                isTwainAvailable = True
            End If
    
            ' if TWAIN device manager is NOT available
            If Not isTwainAvailable Then
                Console.WriteLine("TWAIN device manager is NOT available.")
            End If
        End Using
    End Sub
    


    Вот пример, который демонстрирует, как использовать 32-битные драйверы TWAIN и WIA в 32-битном приложении:
    /// <summary>
    /// Shows a list of 32-bit TWAIN and WIA drivers in 32-bit application.
    /// </summary>
    /// <remarks>
    /// This code must be used in 32-bit application.
    /// </remarks>
    void Use32BitTwainAndWiaDriversIn32BitApplication()
    {
        // create the device manager
        using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
        {
            // specify that TWAIN device manager 1.x must be used
            deviceManager.IsTwain2Compatible = false;
    
            // open the device manager
            deviceManager.Open();
    
            // show a dialog for selecting 32-bit TWAIN or WIA driver
            deviceManager.ShowDefaultDeviceSelectionDialog();
        }
    }
    
    ''' <summary>
    ''' Shows a list of 32-bit TWAIN and WIA drivers in 32-bit application.
    ''' </summary>
    ''' <remarks>
    ''' This code must be used in 32-bit application.
    ''' </remarks>
    Private Sub Use32BitTwainAndWiaDriversIn32BitApplication()
        ' create the device manager
        Using deviceManager As New Vintasoft.Twain.DeviceManager()
            ' specify that TWAIN device manager 1.x must be used
            deviceManager.IsTwain2Compatible = False
    
            ' open the device manager
            deviceManager.Open()
    
            ' show a dialog for selecting 32-bit TWAIN or WIA driver
            deviceManager.ShowDefaultDeviceSelectionDialog()
        End Using
    End Sub
    


    Вот пример, который демонстрирует, как использовать 32-битные TWAIN-драйверы в 64-битном приложении:
    /// <summary>
    /// Shows a list of 32-bit TWAIN drivers in 64-bit application.
    /// </summary>
    /// <remarks>
    /// This code must be used in 64-bit application.
    /// </remarks>
    void Use32BitTwainDriversIn64BitApplication()
    {
        // create the device manager
        using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
        {
            // specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = true;
            // specify that 64-bit TWAIN device manager 2.x must use 32-bit devices
            deviceManager.Use32BitDevices();
    
            // open the device manager
            deviceManager.Open();
    
            // show a dialog for selecting 32-bit TWAIN driver
            deviceManager.ShowDefaultDeviceSelectionDialog();
        }
    }
    
    ''' <summary>
    ''' Shows a list of 32-bit TWAIN drivers in 64-bit application.
    ''' </summary>
    ''' <remarks>
    ''' This code must be used in 64-bit application.
    ''' </remarks>
    Private Sub Use32BitTwainDriversIn64BitApplication()
        ' create the device manager
        Using deviceManager As New Vintasoft.Twain.DeviceManager()
            ' specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = True
            ' specify that 64-bit TWAIN device manager 2.x must use 32-bit devices
            deviceManager.Use32BitDevices()
    
            ' open the device manager
            deviceManager.Open()
    
            ' show a dialog for selecting 32-bit TWAIN driver
            deviceManager.ShowDefaultDeviceSelectionDialog()
        End Using
    End Sub
    


    Вот пример, который демонстрирует, как использовать 64-битные TWAIN-драйверы в 64-битном приложении:
    /// <summary>
    /// Shows a list of 64-bit TWAIN drivers in 64-bit application.
    /// </summary>
    /// <remarks>
    /// This code must be used in 64-bit application.
    /// </remarks>
    void Use64BitTwainDriversIn64BitApplication()
    {
        // create the device manager
        using (Vintasoft.Twain.DeviceManager deviceManager = new Vintasoft.Twain.DeviceManager())
        {
            // specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = true;
    
            // open the device manager
            deviceManager.Open();
    
            // show a dialog for selecting 64-bit TWAIN driver
            deviceManager.ShowDefaultDeviceSelectionDialog();
        }
    }
    
    ''' <summary>
    ''' Shows a list of 64-bit TWAIN drivers in 64-bit application.
    ''' </summary>
    ''' <remarks>
    ''' This code must be used in 64-bit application.
    ''' </remarks>
    Private Sub Use64BitTwainDriversIn64BitApplication()
        ' create the device manager
        Using deviceManager As New Vintasoft.Twain.DeviceManager()
            ' specify that TWAIN device manager 2.x must be used
            deviceManager.IsTwain2Compatible = True
    
            ' open the device manager
            deviceManager.Open()
    
            ' show a dialog for selecting 64-bit TWAIN driver
            deviceManager.ShowDefaultDeviceSelectionDialog()
        End Using
    End Sub