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 устройств.

    Вот C#/VB.NET код, который демонстрирует, как проверить, установлен ли в системе менеджер 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
                            System.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
                            System.Console.WriteLine("TWAIN device manager 1.x is available.")
                            isTwainAvailable = True
                    End If
    
                    ' if TWAIN device manager is NOT available
                    If Not isTwainAvailable Then
                            System.Console.WriteLine("TWAIN device manager is NOT available.")
                    End If
            End Using
    End Sub
    


    Вот C#/VB.NET код, который демонстрирует, как использовать 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
    


    Вот C#/VB.NET код, который демонстрирует, как использовать 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
    


    Вот C#/VB.NET код, который демонстрирует, как использовать 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