Cada línea de texto es un nuevo registro .
El registro se rellenan solamente tres campos : company, contact y notes . Todos con el mismo valor dado por la línea de texto.
Si el programa encuentra un registro duplicado en la base de datos a través de la introducción por ventana de alta avisa de un posible duplicado , deteniéndose para dar al usuario la oportunidad de decidir si lo añade o no lo añade.
Mi interés reside en que el programa no se pare cuando encuentra un registro duplicado . Que o bien se lo salte y continúe con la siguiente línea del archivo de textos o bien añada la posible línea duplicada al campo de notas del registro posiblemente duplicado encontrado en la base.
Y luego que continúe con la siguiente línea sin detenerse a esperar la decisión del usuario.
O sea : Si salta la línea del archivo de texto que está posiblemente duplicada en la base pues estupendo.
Subo el script y también pongo un pedazo de código donde se decide sobre posibles registros duplicados.
Mis conocimientos de autoit son muy limitados. Aspiro a obtener el código modificativo.
Gracias
Código: Seleccionar todo
If WinExists("GoldMine", "Ya hay un registro") = 1 Then
$handle_VentanaGoldMineRegistroDuplicado = WinActivate("GoldMine", "Ya hay un registro")
If $handle_VentanaGoldMineRegistroDuplicado = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana de registro duplicado de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E049", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
$int_ResultadoWinWaitClose = WinWaitClose("GoldMine", "Ya hay un registro", 0)
If $int_ResultadoWinWaitClose <> 1 Then
MsgBox(16, "LineToClip - Error", "Se ha obtenido una respuesta inesperada al esperar al cierre de la ventana de registro duplicado de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E050", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Sleep($int_TiempoEsperaAbrirVentanaYDetectarTeclas)
If WinExists("Agregar nuevo registro") = 1 Then
$handle_VentanaGoldMineNuevoRegistro = WinActivate("Agregar nuevo registro")
If $handle_VentanaGoldMineNuevoRegistro = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana de nuevo registro de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E051", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
$int_IsPressedReintentos = 0
$int_IsPressedResultado = 0
_IsPressed("0D", $handle_shell32)
_IsPressed("1B", $handle_shell32)
While $int_IsPressedReintentos < 8
If _IsPressed("0D", $handle_shell32) = 1 Then
$int_IsPressedResultado = 6
ElseIf _IsPressed("1B", $handle_shell32) = 1 Then
$int_IsPressedResultado = 7
EndIf
If WinExists("Agregar nuevo registro") <> 1 Then
$int_IsPressedReintentos = $int_IsPressedReintentos + 1
EndIf
WEnd
If $int_IsPressedResultado <> 6 And $int_IsPressedResultado <> 7 Then
$int_IsPressedResultado = MsgBox(36, "LineToClip - Pregunta", "La ventana Agregar nuevo registro se ha cerrado. ¿Desea continuar añadiendo el registro actual?", 0)
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
If WinExists("GoldMine", "Ya hay un registro") = 1 Then
$handle_VentanaGoldMineRegistroDuplicado = WinActivate("GoldMine", "Ya hay un registro")
If $handle_VentanaGoldMineRegistroDuplicado = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana de registro duplicado de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E052", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
$int_ResultadoWinWaitClose = WinWaitClose("GoldMine", "Ya hay un registro", 0)
If $int_ResultadoWinWaitClose <> 1 Then
MsgBox(16, "LineToClip - Error", "Se ha obtenido una respuesta inesperada al esperar al cierre de la ventana de registro duplicado de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E053", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Select
Case $int_IsPressedResultado = 6
Send("!c", 0)
Send("i", 0)
Send("^i", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Sleep($int_TiempoEsperaAbrirVentana)
If WinExists("Bloqueo de registro multiusuario") = 1 Then
$handle_VentanaGoldMineBloqueoRegistroMultiusuario = WinActivate("Bloqueo de registro multiusuario")
If $handle_VentanaGoldMineBloqueoRegistroMultiusuario = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana de bloqueo de registro multiusuario de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E054", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
$int_ResultadoWinClose = WinClose("Bloqueo de registro multiusuario")
If $int_ResultadoWinClose = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar cerrar la ventana de bloqueo de registro multiusuario de GoldMine. Puede que el programa no esté ejecutándose o la ventana ya haya sido cerrada." & @CRLF & @CRLF & "Número de error del programa: E055", 300)
EndIf
EndIf
Send("{ESC}", 0)
If WinExists("GoldMine", "Guardar cambios en notas") = 1 Then
$handle_VentanaGoldMineGuardarNotas = WinActivate("GoldMine", "Guardar cambios en notas")
If $handle_VentanaGoldMineGuardarNotas = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana de guardar notas de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E056", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("s", 0)
$int_ResultadoWinWaitClose = WinWaitClose("GoldMine", "Guardar cambios en notas", 0)
If $int_ResultadoWinWaitClose <> 1 Then
MsgBox(16, "LineToClip - Error", "Se ha obtenido una respuesta inesperada al esperar al cierre de la ventana de guardar notas de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en responder." & @CRLF & @CRLF & "Número de error del programa: E057", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf