Estoy usando una librería trial ocx para crear un dialogo que me permita controlar el escaner independientemente al software que trae.
He probado la siguiente secuencia de comandos:
Code: Select all | Expand
function Main() local oScan oScan := TOleAuto():New( "csXImageTrial.ImageBox" ) oScan:WaitForAcquire := .t. oScan:UseTwainInterface := .f. // Evitamos que llame al software del escaner. oScan:SelectTWainDevice() // Seleccionamos el escaner a utilizar MsgInfo( "Before" ) oScan:Acquire() // escaneamos MsgInfo( "After" )return nil
Cuando ejecuto este código, funciona bien, es decir, muestra el mensaje 'Antes', lueso escanea y finalmente, muestra 'Después'
Lo curioso es que si ejecuto esta misma secuencia asignada a un ACTION de un botón en mi diálogo de recurso, se produce la siguiente ejecución:
Muestra 'Antes', escanea y luego no muestra el mensaje 'Después'. Pero mi aplicación no se bloquea. sigue funcionando y puedes pulsar otros botones y salir del dialogo.
Al principio pensé que se trataba de la librería en sí, pero probé con otra librería muy similar que tambien usa activex y los resultados fueron los mismos.
En fín, que parece que hay algo que le molesta cuando ejecuto desde diálogo y no sé que hacer.
