C# 虚拟扫描仪(TWAIN)无法在C(WPF)中工作

C# 虚拟扫描仪(TWAIN)无法在C(WPF)中工作,c#,driver,scanning,twain,twaindotnet,C#,Driver,Scanning,Twain,Twaindotnet,它是关于TWAINdotNet图书馆的。在过去的24小时里,我一直在尝试在C/WPF/VS2010中进行基本的虚拟扫描仪实验。我已经从下载并安装了虚拟扫描仪驱动程序,它在可用TWAIN数据源列表中显示良好。有趣的是,这个页面上提供的示例应用程序也可以很好地使用这个驱动程序。只有当我试图通过C/WPF使用它时,问题才会出现 具体来说,使用Message.enables调用DsUserInterface失败的原因是什么。无论我是否要求它显示UI,它都会失败。同样,DsImageLayout调用在尝试

它是关于TWAINdotNet图书馆的。在过去的24小时里,我一直在尝试在C/WPF/VS2010中进行基本的虚拟扫描仪实验。我已经从下载并安装了虚拟扫描仪驱动程序,它在可用TWAIN数据源列表中显示良好。有趣的是,这个页面上提供的示例应用程序也可以很好地使用这个驱动程序。只有当我试图通过C/WPF使用它时,问题才会出现

具体来说,使用Message.enables调用DsUserInterface失败的原因是什么。无论我是否要求它显示UI,它都会失败。同样,DsImageLayout调用在尝试设置扫描区域时也会导致失败。最后但并非最不重要的一点是,尝试将测量单位设置为英寸或其他任何单位也不会起作用。调用没有失败,但上一个值保持不变

以下是代码,以防我做错了什么:

public partial class MainWindow : Window
{
    TwainDotNet.Wpf.WpfWindowMessageHook mTwnHook;
    TwainDotNet.Twain mTWN;
    TwainDotNet.ScanSettings setting = new TwainDotNet.ScanSettings();

    public MainWindow()
    {
        InitializeComponent();
    }

    private void btnScan_Click(object sender, RoutedEventArgs e)
    {
        InitializeTWAIN();

        mTWN.ScanningComplete += twn_ScanningComplete;
        mTWN.TransferImage += twn_TransferImage;

        mTWN.StartScanning(setting);            
    }

    private void InitializeTWAIN()
    {
        mTwnHook = new TwainDotNet.Wpf.WpfWindowMessageHook(this);
        mTWN = new TwainDotNet.Twain(mTwnHook);

        setting.UseAutoFeeder = true;
        setting.UseDocumentFeeder = true;
        setting.UseDuplex = true;
        setting.TransferCount = 1;

        setting.Page = new TwainDotNet.PageSettings() 
        { 
                    Orientation = TwainDotNet.TwainNative.Orientation.Auto, 
                    Size = TwainDotNet.TwainNative.PageType.UsLetter 
        };

        setting.Area = new TwainDotNet.AreaSettings(TwainDotNet.TwainNative.Units.Millimeters, 0f, 0f, 279.4f, 215.9f);
        setting.Resolution = new TwainDotNet.ResolutionSettings() 
        { 
                    ColourSetting = TwainDotNet.ColourSetting.Colour, 
                    Dpi = 100 
        };

        setting.ShouldTransferAllPages = true;
        setting.ShowTwainUI = false;
    }

    void twn_TransferImage(object sender, TwainDotNet.TransferImageEventArgs e)
    {
      //save  image
    }

    void twn_ScanningComplete(object sender, TwainDotNet.ScanningCompleteEventArgs e)
    {
        if (e.Exception != null)
            MessageBox.Show(e.Exception.Message);
    }
}