VintaSoft Twain .NET SDK 15.4: Руководство для .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/".


Если 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