first thread was deleted in error, so another one.
Problem: When cancelling the scan process in the scanner driver's progress dialog, the application does not respond anymore. It seems that the method-call of "AcquireModal" does not return in this case (the switch-line is never reached). Here is the code:
bool bFinished = false;
Device deScan = null;
DeviceManager dmScan = null;
AcquireModalState amsScan;
try
{
TwainEnvironment.EnableDebugging(@"c:\vstwain.log");
dmScan = new DeviceManager(this);
dmScan.Open();
dmScan.ShowDefaultDeviceSelectionDialog();
deScan = dmScan.DefaultDevice;
deScan.Open();
deScan.ShowUI = false;
deScan.ModalUI = true;
deScan.ShowIndicators = true;
deScan.DisableAfterAcquire = true;
deScan.TransferMode = Vintasoft.Twain.TransferMode.Native;
deScan.DocumentFeeder.Enabled = true;
deScan.PixelType = Vintasoft.Twain.PixelType.BW;
deScan.Resolution = new Resolution(150, 150);
do
{
amsScan = deScan.AcquireModal();
switch (amsScan)
{
case AcquireModalState.ImageAcquired:
deScan.AcquiredImage.Dispose();
break;
case AcquireModalState.ScanCanceled:
case AcquireModalState.ScanCompleted:
case AcquireModalState.ScanFailed:
case AcquireModalState.UserInterfaceClosed:
case AcquireModalState.None:
bFinished = true;
break;
}
}
while (!bFinished);
MessageBox.Show("Finished");
}
catch (Exception eError)
{
MessageBox.Show(eError.Message);
}
finally
{
if (deScan != null && deScan.State != DeviceState.Closed)
{
deScan.Close();
deScan.Dispose();
}
if (dmScan != null && dmScan.State != DeviceManagerState.Closed)
{
dmScan.Close();
dmScan.Dispose();
}
}
I've also tried this using the async-scanning method, but the behaviour is identical (none of the event-procedures are called). The application freezes, and the main window is disabled.The twain debug log:
24.11.2015 16:18:28 29,532,160 Debugging enabled [9.1.5.1] 24.11.2015 16:18:28 29,585,408 Device manager is opening PathToDSM=C:\Windows\TWAIN_32.DLL 24.11.2015 16:18:28 29,593,600 DeviceManagerStateChanged Closed => Loaded 24.11.2015 16:18:28 29,593,600 DeviceManagerStateChanged Loaded => Opened 24.11.2015 16:18:28 29,593,600 Device manager is opened 24.11.2015 16:18:29 29,798,400 Device is opening 24.11.2015 16:18:30 31,526,912 DeviceStateChanged Closed => Opened 24.11.2015 16:18:30 31,535,104 Device is opened: Id(52), Version(1, 0, 13, 1, December, 2001), Protocol(1.9), Groups(3), Manuf(Hewlett-Packard), ProdFamily(All-in-One), ProdName(hp scanjet 5590 TWAIN) 24.11.2015 16:18:30 31,653,888 Getting value of capability Name=SupportedCaps Method=Get 24.11.2015 16:18:30 31,682,560 UsageMode=Get 24.11.2015 16:18:30 31,682,560 ContainerType=Array 24.11.2015 16:18:30 31,711,232 ValueType=UInt16 24.11.2015 16:18:30 31,715,328 Capability value is received 24.11.2015 16:18:30 31,752,192 Getting value of capability Name=FeederEnabled Method=GetCurrent 24.11.2015 16:18:30 31,752,192 UsageMode=Get, Set, GetDefault, Reset 24.11.2015 16:18:30 31,752,192 ContainerType=OneValue 24.11.2015 16:18:30 31,752,192 ValueType=Bool CurrentValue=True 24.11.2015 16:18:30 31,760,384 Capability value is received 24.11.2015 16:18:30 31,772,672 Setting value of capability Name=FeederEnabled ValueType=System.Boolean Value=True 24.11.2015 16:18:30 31,797,248 Result: Success 24.11.2015 16:18:30 31,797,248 Capability value is set 24.11.2015 16:18:30 31,817,728 Setting value of capability Name=IPixelType ValueType=System.UInt16 Value=0 24.11.2015 16:18:30 31,817,728 Result: Success 24.11.2015 16:18:30 31,817,728 Capability value is set 24.11.2015 16:18:30 31,825,920 Setting value of capability Name=IXResolution ValueType=System.Single Value=150 24.11.2015 16:18:30 31,838,208 Result: Success 24.11.2015 16:18:30 31,838,208 Capability value is set 24.11.2015 16:18:30 31,838,208 Setting value of capability Name=IYResolution ValueType=System.Single Value=150 24.11.2015 16:18:30 31,846,400 Result: Success 24.11.2015 16:18:30 31,846,400 Capability value is set 24.11.2015 16:18:30 31,907,840 Getting value of capability Name=Indicators Method=GetCurrent 24.11.2015 16:18:30 31,916,032 UsageMode=Get, Set, GetDefault, Reset 24.11.2015 16:18:30 31,916,032 ContainerType=OneValue 24.11.2015 16:18:30 31,916,032 ValueType=Bool CurrentValue=True 24.11.2015 16:18:30 31,924,224 Capability value is received 24.11.2015 16:18:30 31,924,224 Getting value of capability Name=IXferMech Method=GetCurrent 24.11.2015 16:18:30 31,924,224 UsageMode=Get, Set, GetDefault, Reset 24.11.2015 16:18:30 31,924,224 ContainerType=OneValue 24.11.2015 16:18:30 31,924,224 ValueType=UInt16 CurrentValue=0 24.11.2015 16:18:30 31,932,416 Capability value is received 24.11.2015 16:18:30 31,940,608 Device is enabling ShowUI=False ModalUI=True 24.11.2015 16:19:05 32,030,720 DeviceStateChanged Opened => Enabled 24.11.2015 16:19:05 35,921,920 Received request to close the deviceScanner is a HP scanjet 5590. When scanning through another twain application (like twacker from twain.org), the problem does not occur.
What can possible cause this behaviour?
Thank you for your support.
Best regards,
Daniel
