You are here: PSPad forum > English discussion forum > Fortunately I am not going mad with opened files

Fortunately I am not going mad with opened files

Goto Page: Previous1 2 3 Next

#11 Re: Fortunately I am not going mad with opened files

Posted by: pspad | Date: 2017-04-13 11:31 | IP: IP Logged

What exactly script does?
Script opens file in PSPad? Or script opens file using VBScript somewhere?
Understand, when I don't know the way what are you doing with file, way how did you open it, I can't continue.
File can be open with rights, access modes, ...

Options: Reply | Quote | Up ^


#12 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:10 | IP: IP Logged

Part I

#NoTrayIcon

#Include <ButtonConstants.au3>
#Include <Clipboard.au3>
#Include <Crypt.au3>
#Include <Constants.au3>
#Include <EditConstants.au3>
#Include <GUIConstantsEx.au3>
#Include <Misc.au3>
#Include <StaticConstants.au3>
#Include <String.au3>
#Include <WindowsConstants.au3>
#Include "APIConstants.au3"
#Include "WinAPIEx.au3"
#Include "HotKeyConstants.au3"
#Include "HotKey.au3"
#Include "HotKeyInput.au3"

;==============================================================================

AutoItSetOption("MustDeclareVars", 1)
AutoItSetOption("SendKeyDelay", 100)
AutoItSetOption("SendKeyDownDelay", 100)
AutoItSetOption("TrayAutoPause", 0)
AutoItSetOption("TrayMenuMode", 1)
AutoItSetOption("WinTitleMatchMode", 1)
AutoItSetOption("WinTextMatchMode", 1)
AutoItSetOption("WinWaitDelay", 0)

OnAutoItExitRegister("DetectarApagado")

Local $int_ErrorConfiguracion = 0
Local $int_ErrorHotKeyDisable = 0
Local $int_ErrorHotKeyEnable = 0
Local $int_ErrorHotKeyRelease = 0
Local $int_ErrorParametros = 0
Local $int_ErrorModePrevio = 0
Local $int_ErrorModeAnterior = 0
Local $int_MensajeActual = 0
Global $ctrlid_MenuConfiguracion
Global $ctrlid_MenuRestablecer
Global $ctrlid_OpcionLineToClipCarpetas
Global $ctrlid_OpcionLineToClipURLs
Global $ctrlid_OpcionLineToClipBaseDatos
Global $ctrlid_OpcionConfiguracionTeclasElegir
Global $ctrlid_OpcionConfiguracionTeclasBorrar
Global $ctrlid_OpcionConfiguracionTiemposElegir
Global $ctrlid_OpcionConfiguracionTiemposBorrar
Global $ctrlid_OpcionConfiguracionCarpetaElegir
Global $ctrlid_OpcionConfiguracionCarpetaBorrar
Global $ctrlid_OpcionConfiguracionUsuarioBorrar
Global $ctrlid_OpcionAyuda
Global $ctrlid_OpcionSalir
Global $handle_shell32
Global $int_HotKeyCarpetas = 0
Global $int_HotKeyURLs = 0
Global $int_HotKeyBaseDatos = 0
Global $int_TiempoEsperaAbrirPagina = 0
Global $int_TiempoEsperaAbrirVentana = 0
Global $int_TiempoEsperaAbrirVentanaYDetectarTeclas = 0
Global $int_TiempoEsperaEjecutarGoldMine = 0
Global $int_TiempoEsperaFinalizarRegistro = 0
Global $str_Archivo = ""
Global $str_CarpetaTexto = ""
Global $str_CarpetaGoldMine = ""
Global $str_GoldMine5User = ""
Global $str_GoldMine5Password = ""
Global $str_GoldMine5Key = BinaryToString(_Crypt_HashData(@ComputerName & @UserName, $CALG_RC4 , True, 0))

If _Singleton("LineToClip", 1) = 0 Then Exit -1

TraySetIcon("LineToClip.ico", 0)
TraySetToolTip("LineToClip")
$ctrlid_OpcionLineToClipCarpetas = TrayCreateItem("Leer archivo de carpetas", -1)
$ctrlid_OpcionLineToClipURLs = TrayCreateItem("Leer archivo de URLs", -1)
$ctrlid_OpcionLineToClipBaseDatos = TrayCreateItem("Leer archivo de registros para base de datos", -1)
TrayCreateItem("", -1)
$ctrlid_MenuConfiguracion = TrayCreateMenu("Configuración", -1)
$ctrlid_OpcionConfiguracionTeclasElegir = TrayCreateItem("Configurar métodos abreviados de teclado", $ctrlid_MenuConfiguracion)
$ctrlid_OpcionConfiguracionTiemposElegir = TrayCreateItem("Configurar tiempos de espera", $ctrlid_MenuConfiguracion)
$ctrlid_OpcionConfiguracionCarpetaElegir = TrayCreateItem("Configurar carpetas", $ctrlid_MenuConfiguracion)
TrayCreateItem("", $ctrlid_MenuConfiguracion)
$ctrlid_MenuRestablecer = TrayCreateMenu("Restablecer configuración por defecto", $ctrlid_MenuConfiguracion)
$ctrlid_OpcionConfiguracionTeclasBorrar = TrayCreateItem("Restablecer métodos abreviados de teclado", $ctrlid_MenuRestablecer)
$ctrlid_OpcionConfiguracionTiemposBorrar = TrayCreateItem("Restablecer tiempos de espera", $ctrlid_MenuRestablecer)
$ctrlid_OpcionConfiguracionCarpetaBorrar = TrayCreateItem("Restablecer carpetas", $ctrlid_MenuRestablecer)
TrayCreateItem("", $ctrlid_MenuRestablecer)
$ctrlid_OpcionConfiguracionUsuarioBorrar = TrayCreateItem("Quitar datos de usuario y contraseña de GoldMine", $ctrlid_MenuRestablecer)
TrayCreateItem("", -1)
$ctrlid_OpcionAyuda = TrayCreateItem("Ayuda", -1)
TrayCreateItem("", -1)
$ctrlid_OpcionSalir = TrayCreateItem("Cerrar", -1)
TraySetState(1)
TrayItemSetState($ctrlid_OpcionAyuda, $TRAY_DEFAULT)

$int_ErrorModePrevio = _WinAPI_SetErrorMode($SEM_FAILCRITICALERRORS)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode(BitOR($int_ErrorModePrevio, $SEM_FAILCRITICALERRORS))

$int_ErrorConfiguracion = LeerConfiguracion()
If $int_ErrorConfiguracion <> 0 Then
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 1
EndIf

$int_ErrorConfiguracion = ConfiguracionTeclas_Aplicar()
If $int_ErrorConfiguracion <> 0 Then
;$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
;Exit 2
EndIf

$handle_shell32 = DllOpen("user32.dll")
If $handle_shell32 = -1 Then
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 3
EndIf

While 1
TrayItemSetState($ctrlid_OpcionLineToClipCarpetas, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionLineToClipURLs, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionLineToClipBaseDatos, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionConfiguracionTeclasElegir, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionConfiguracionTiemposElegir, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionConfiguracionCarpetaElegir, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionAyuda, $TRAY_UNCHECKED)
TrayItemSetState($ctrlid_OpcionSalir, $TRAY_UNCHECKED)

$int_MensajeActual = TrayGetMsg()
Select
Case $int_MensajeActual = 0
ContinueLoop
Case $int_MensajeActual = $ctrlid_OpcionLineToClipCarpetas
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no finalice el proceso del archivo." & @CRLF & @CRLF & "Número de error del programa: E001", 300)
EndIf
LineToClipCarpetas_HotKey()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E002", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionLineToClipURLs
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no finalice el proceso del archivo." & @CRLF & @CRLF & "Número de error del programa: E003", 300)
EndIf
LineToClipURLs_HotKey()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E004", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionLineToClipBaseDatos
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no finalice el proceso del archivo." & @CRLF & @CRLF & "Número de error del programa: E005", 300)
EndIf
LineToClipBaseDatos_HotKey()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E006", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionTeclasElegir
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E007", 300)
EndIf
ConfiguracionTeclas_Elegir()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E008", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionTeclasBorrar
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E009", 300)
EndIf
ConfiguracionTeclas_Borrar()
TrayItemSetState($ctrlid_OpcionConfiguracionTeclasElegir, $TRAY_UNCHECKED + $TRAY_DISABLE)
TrayItemSetState($ctrlid_OpcionConfiguracionTeclasBorrar, $TRAY_CHECKED + $TRAY_DISABLE)
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E010", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionTiemposElegir
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E011", 300)
EndIf
ConfiguracionTiempos_Elegir()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E012", 300)
EndIf
TraySetClick(8)

add registers to my crm from lines of a txt file.
the autoit code is above

Best Regards

--
Nice program indeed

Options: Reply | Quote | Up ^


#13 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:11 | IP: IP Logged

Part II

Case $int_MensajeActual = $ctrlid_OpcionConfiguracionTiemposBorrar
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E013", 300)
EndIf
ConfiguracionTiempos_Borrar()
TrayItemSetState($ctrlid_OpcionConfiguracionTiemposElegir, $TRAY_UNCHECKED + $TRAY_DISABLE)
TrayItemSetState($ctrlid_OpcionConfiguracionTiemposBorrar, $TRAY_CHECKED + $TRAY_DISABLE)
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E014", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionCarpetaElegir
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E015", 300)
EndIf
ConfiguracionCarpetas_Elegir()
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E016", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionCarpetaBorrar
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E017", 300)
EndIf
ConfiguracionCarpetas_Borrar()
TrayItemSetState($ctrlid_OpcionConfiguracionCarpetaElegir, $TRAY_UNCHECKED + $TRAY_DISABLE)
TrayItemSetState($ctrlid_OpcionConfiguracionCarpetaBorrar, $TRAY_CHECKED + $TRAY_DISABLE)
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E018", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionConfiguracionUsuarioBorrar
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de configuración." & @CRLF & @CRLF & "Número de error del programa: E019", 300)
EndIf
ConfiguracionUsuario_Borrar()
TrayItemSetState($ctrlid_OpcionConfiguracionUsuarioBorrar, $TRAY_CHECKED + $TRAY_DISABLE)
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E020", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionAyuda
TraySetClick(0)
$int_ErrorHotKeyDisable = _HotKey_Disable($HK_FLAG_NOUNHOOK)
If $int_ErrorHotKeyDisable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no cierre la ventana de ayuda." & @CRLF & @CRLF & "Número de error del programa: E021", 300)
EndIf
MsgBox(64, "LineToClip - Ayuda (Versión 1.16 - 25/05/13)", "Pulse " & _KeyToStr($int_HotKeyCarpetas, "+") & ", " & _KeyToStr($int_HotKeyURLs, "+") & " o " & _KeyToStr($int_HotKeyBaseDatos, "+") & " para leer y procesar un archivo de carpetas, URLs o registros para base de datos respectivamente.", 300)
$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible reactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión." & @CRLF & @CRLF & "Número de error del programa: E022", 300)
EndIf
TraySetClick(8)
Case $int_MensajeActual = $ctrlid_OpcionSalir
TraySetState(2)
ExitLoop
EndSelect
WEnd

$int_ErrorHotKeyDisable = _HotKey_Disable()
If $int_ErrorHotKeyDisable <> 1 Then
; MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado." & @CRLF & @CRLF & "Número de error del programa: E023", 300)
EndIf
$int_ErrorHotKeyRelease = _HotKey_Release()
If $int_ErrorHotKeyRelease <> 1 Then
; MsgBox(16, "LineToClip - Error", "No ha sido posible deshabilitar los métodos abreviados de teclado definidos previamente. Los métodos abreviados de AutoIt HotKey UDF pueden no funcionar hasta no reiniciar el sistema." & @CRLF & @CRLF & "Número de error del programa: E024", 300)
EndIf

DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)

Exit 0

;===============================================================================

Func LineToClipCarpetas_HotKey()
Local $handle_ArchivoCarpetas
Local $int_ArchivoCarpetas_LineaActual = 0
Local $int_ErrorFileClose = 0
Local $int_ResultadoMsgBox = 0
Local $int_ResultadoUI_ErrorFormato = 0
Local $str_Linea = ""

TraySetClick(0)
TraySetState(4)

$int_ErrorParametros = LeerParametros()
If $int_ErrorParametros <> 0 Then
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$handle_ArchivoCarpetas = FileOpen($str_Archivo, 0)
If $handle_ArchivoCarpetas = -1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser abierto. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E025", 300)
FileClose($handle_ArchivoCarpetas)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

While 1
$int_ArchivoCarpetas_LineaActual = $int_ArchivoCarpetas_LineaActual + 1
$str_Linea = FileReadLine($handle_ArchivoCarpetas, $int_ArchivoCarpetas_LineaActual)
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & $int_ArchivoCarpetas_LineaActual & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E026", 300)
FileClose($handle_ArchivoCarpetas)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
ExitLoop
EndSwitch

If FileExists($str_Linea) = 1 Then
ShellExecute($str_Linea)
_ClipBoard_SetData($str_Linea, $CF_UNICODETEXT)
Else
$int_ResultadoUI_ErrorFormato = LineToClipCarpetas_ErrorFormato($int_ArchivoCarpetas_LineaActual, $str_Linea)
Select
Case $int_ResultadoUI_ErrorFormato = 1
FileClose($handle_ArchivoCarpetas)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 2
FileClose($handle_ArchivoCarpetas)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 3
$int_ArchivoCarpetas_LineaActual = $int_ArchivoCarpetas_LineaActual - 1
ContinueLoop
Case $int_ResultadoUI_ErrorFormato = 4
ContinueLoop
Case Else
MsgBox(16, "LineToClip - Error", "La función 'LineToClipCarpetas_ErrorFormato' ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E027", 300)
FileClose($handle_ArchivoCarpetas)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
EndIf
Wend

$int_ErrorFileClose = FileClose($handle_ArchivoCarpetas)
If $int_ErrorFileClose <> 1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser cerrado. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E028", 300)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return

EndFunc

;===============================================================================

Func LineToClipURLs_HotKey()
Local $handle_ArchivoURLs
Local $int_ArchivoURLs_LineaActual = 0
Local $int_ErrorFileClose = 0
Local $int_ResultadoMsgBox = 0
Local $int_ResultadoUI_ErrorFormato = 0
Local $str_Linea = ""

TraySetClick(0)
TraySetState(4)

$int_ErrorParametros = LeerParametros()
If $int_ErrorParametros <> 0 Then
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$handle_ArchivoURLs = FileOpen($str_Archivo, 0)
If $handle_ArchivoURLs = -1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser abierto. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E029", 300)
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

While 1
$int_ArchivoURLs_LineaActual = $int_ArchivoURLs_LineaActual + 1
$str_Linea = FileReadLine($handle_ArchivoURLs, $int_ArchivoURLs_LineaActual)
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & $int_ArchivoURLs_LineaActual & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E030", 300)
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
ExitLoop
EndSwitch

--
Nice program indeed

Options: Reply | Quote | Up ^


#14 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:14 | IP: IP Logged

Part III

If StringLeft($str_Linea, 7) = "file://" Or StringLeft($str_Linea, 6) = "ftp://" Or StringLeft($str_Linea, 9) = "mailto://" Or StringLeft($str_Linea, 7) = "http://" Or StringLeft($str_Linea, 8) = "https://" Or StringLeft($str_Linea, 4) = "www." Then
ShellExecute($str_Linea)
_ClipBoard_SetData($str_Linea, $CF_UNICODETEXT)
Sleep($int_TiempoEsperaAbrirPagina)

ElseIf StringLeft($str_Linea, 1) = "*" Then
$str_Linea = StringTrimLeft($str_Linea, 1)
$str_Linea = StringReplace($str_Linea, " ", "%20")
ShellExecute("http://www.google.com/search?q=" & $str_Linea)
_ClipBoard_SetData("http://www.google.com/search?q=" & $str_Linea, $CF_UNICODETEXT)
Sleep($int_TiempoEsperaAbrirPagina)

Else
$int_ResultadoUI_ErrorFormato = LineToClipURLs_ErrorFormato($int_ArchivoURLs_LineaActual, $str_Linea)
Select
Case $int_ResultadoUI_ErrorFormato = 1
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 2
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 3
$int_ArchivoURLs_LineaActual = $int_ArchivoURLs_LineaActual - 1
ContinueLoop
Case $int_ResultadoUI_ErrorFormato = 4
ContinueLoop
Case Else
MsgBox(16, "LineToClip - Error", "La función 'LineToClipURLs_ErrorFormato' ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E031", 300)
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
EndIf
Wend

$int_ErrorFileClose = FileClose($handle_ArchivoURLs)
If $int_ErrorFileClose <> 1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser cerrado. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E032", 300)
FileClose($handle_ArchivoURLs)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return

EndFunc

;===============================================================================

Func LineToClipBaseDatos_HotKey()
Local $handle_ArchivoRegistrosBaseDatos
Local $handle_VentanaGoldMinePrincipal
Local $handle_VentanaGoldMineBloqueoRegistroMultiusuario
Local $handle_VentanaGoldMineNuevoRegistro
Local $handle_VentanaGoldMineRegistroDuplicado
Local $handle_VentanaGoldMineGuardarNotas
Local $bool_ArchivoFinalAlcanzado = False
Local $bool_ArchivoRegistrosBaseDatos_ErrorFormato = False
Local $int_ArchivoRegistrosBaseDatos_LineaBackup = 0
Local $int_ArchivoRegistrosBaseDatos_LineaActual = 0
Local $int_ErrorFileClose = 0
Local $int_IsPressedReintentos = 0
Local $int_IsPressedResultado = 0
Local $int_PIDGoldMine = 0
Local $int_ResultadoMsgBox = 0
Local $int_ResultadoUI_ErrorFormato = 0
Local $int_ResultadoWinClose = 0
Local $int_ResultadoWinGetState = 0
Local $int_ResultadoWinSetState = 0
Local $int_ResultadoWinWaitClose = 0
Local $str_Linea = ""
Local $str_LineaSiguiente = ""
Local $str_Registro = ""

TraySetClick(0)
TraySetState(4)

$int_ErrorParametros = LeerParametros()
If $int_ErrorParametros <> 0 Then
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$handle_ArchivoRegistrosBaseDatos = FileOpen($str_Archivo, 0)
If $handle_ArchivoRegistrosBaseDatos = -1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser abierto. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E033", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

While 1
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual + 1
$str_Linea = FileReadLine($handle_ArchivoRegistrosBaseDatos, $int_ArchivoRegistrosBaseDatos_LineaActual)
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & $int_ArchivoRegistrosBaseDatos_LineaActual & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E034", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
ExitLoop
EndSwitch

If FileExists($str_Linea) = 1 Then
_ClipBoard_SetData($str_Linea, $CF_UNICODETEXT)

If ProcessExists("gmw5.exe") = 0 Then
$str_GoldMine5User = _StringEncrypt(0, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E035", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(0, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E036", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$int_PIDGoldMine = Run('"' & $str_CarpetaGoldMine & '\gmw5.exe" /i:esm /u:' & $str_GoldMine5User & ' /p:' & $str_GoldMine5Password, "", @SW_MAXIMIZE , 0)
If $int_PIDGoldMine <> 0 Then
Sleep($int_TiempoEsperaEjecutarGoldMine)
Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar ejecutar GoldMine. Ejecute GoldMine manualmente antes de iniciar la lectura de un archivo." & @CRLF & @CRLF & "Número de error del programa: E037", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 9
EndIf
$str_GoldMine5User = _StringEncrypt(1, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E038", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(1, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E039", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
EndIf
$int_ResultadoWinGetState = WinGetState("GoldMine 5.5")
If $int_ResultadoWinGetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar obtener el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E040", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Else
If BitAnd($int_ResultadoWinGetState, 16) Then
$int_ResultadoWinSetState = WinSetState("GoldMine 5.5", "", @SW_RESTORE)
If $int_ResultadoWinSetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar establecer el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E041", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf
$handle_VentanaGoldMinePrincipal = WinActivate("GoldMine 5.5")
If $handle_VentanaGoldMinePrincipal = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E042", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
; Esto es lo equivalente a "Ctrl+S"
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: E043", 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: E044", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Send("!h", 0)
Send("n", 0)
Sleep($int_TiempoEsperaAbrirVentana)
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: E045", 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: E046", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
EndIf
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: E047", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Else
MsgBox(16, "LineToClip - Error", "No se ha encontrado 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: E048", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("^v", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{ENTER}", 0)
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: 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
Case $int_IsPressedResultado = 7
Send("{ESC}", 0)
Case Else
MsgBox(16, "LineToClip - Error", "La función 'MsgBox' de AutoIt ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E058", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
Else
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: E059", 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: E060", 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: E061", 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: E062", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf

Sleep($int_TiempoEsperaFinalizarRegistro)

ElseIf StringLeft($str_Linea, 7) = "file://" Or StringLeft($str_Linea, 6) = "ftp://" Or StringLeft($str_Linea, 9) = "mailto://" Or StringLeft($str_Linea, 7) = "http://" Or StringLeft($str_Linea, 8) = "https://" Or StringLeft($str_Linea, 4) = "www." Then
_ClipBoard_SetData($str_Linea, $CF_UNICODETEXT)

If ProcessExists("gmw5.exe") = 0 Then
$str_GoldMine5User = _StringEncrypt(0, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al descifrar los datos de nombre de usuario para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E063", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(0, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al descifrar los datos de contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E064", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$int_PIDGoldMine = Run('"' & $str_CarpetaGoldMine & '\gmw5.exe" /i:esm /u:' & $str_GoldMine5User & ' /p:' & $str_GoldMine5Password, "", @SW_MAXIMIZE , 0)
If $int_PIDGoldMine <> 0 Then
Sleep($int_TiempoEsperaEjecutarGoldMine)
Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar ejecutar GoldMine. Ejecute GoldMine manualmente antes de iniciar la lectura de un archivo." & @CRLF & @CRLF & "Número de error del programa: E065", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 9
EndIf
$str_GoldMine5User = _StringEncrypt(1, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al cifrar los datos de nombre de usuario para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E066", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(1, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al cifrar los datos de contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E067", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
EndIf
$int_ResultadoWinGetState = WinGetState("GoldMine 5.5")
If $int_ResultadoWinGetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar obtener el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E068", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Else
If BitAnd($int_ResultadoWinGetState, 16) Then
$int_ResultadoWinSetState = WinSetState("GoldMine 5.5", "", @SW_RESTORE)
If $int_ResultadoWinSetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar establecer el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E069", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf
$handle_VentanaGoldMinePrincipal = WinActivate("GoldMine 5.5")
If $handle_VentanaGoldMinePrincipal = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E070", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
; Esto es lo equivalente a "Ctrl+Q"
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: E071", 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: E072", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Send("!h", 0)
Send("n", 0)
Sleep($int_TiempoEsperaAbrirVentana)
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: E073", 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: E074", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
EndIf
If WinExists("Agregar nuevo registro") = 1 Then
$handle_VentanaGoldMineNuevoRegistro = WinActivate("Agregar nuevo registro")

--
Nice program indeed

Options: Reply | Quote | Up ^


#15 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:15 | IP: IP Logged

Part IV
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: E075", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Else
MsgBox(16, "LineToClip - Error", "No se ha encontrado 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: E076", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("^v", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{ENTER}", 0)
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: E077", 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: E078", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
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: E079", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("{ESC}", 0)
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: E080", 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: E081", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf

Sleep($int_TiempoEsperaFinalizarRegistro)

ElseIf StringLeft($str_Linea, 1) = "*" Then
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = False
$int_ArchivoRegistrosBaseDatos_LineaBackup = $int_ArchivoRegistrosBaseDatos_LineaActual

If StringRight($str_Linea, 1) = "*" Then
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual - 1
$str_Registro = ""
Else
$str_Registro = StringTrimLeft($str_Linea, 1)
EndIf

$str_LineaSiguiente = FileReadLine($handle_ArchivoRegistrosBaseDatos, ($int_ArchivoRegistrosBaseDatos_LineaActual + 1))
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & ($int_ArchivoRegistrosBaseDatos_LineaActual + 1) & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E082", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
$bool_ArchivoFinalAlcanzado = True
EndSwitch

While StringRight($str_LineaSiguiente, 1) <> "*" And $bool_ArchivoRegistrosBaseDatos_ErrorFormato <> True And $bool_ArchivoFinalAlcanzado <> True
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual + 1
$str_Linea = FileReadLine($handle_ArchivoRegistrosBaseDatos, $int_ArchivoRegistrosBaseDatos_LineaActual)
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & $int_ArchivoRegistrosBaseDatos_LineaActual & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E083", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
$bool_ArchivoFinalAlcanzado = True
EndSwitch

If StringLeft($str_Linea, 1) = "*" Then
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
EndIf

$str_Registro = $str_Registro & @CRLF & $str_Linea

$str_LineaSiguiente = FileReadLine($handle_ArchivoRegistrosBaseDatos, ($int_ArchivoRegistrosBaseDatos_LineaActual + 1))
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & ($int_ArchivoRegistrosBaseDatos_LineaActual + 1) & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E084", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
$bool_ArchivoFinalAlcanzado = True
EndSwitch
WEnd

If StringRight($str_LineaSiguiente, 1) = "*" And $bool_ArchivoRegistrosBaseDatos_ErrorFormato <> True And $bool_ArchivoFinalAlcanzado <> True Then
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual + 1
$str_Linea = FileReadLine($handle_ArchivoRegistrosBaseDatos, $int_ArchivoRegistrosBaseDatos_LineaActual)
Switch @error
Case 1
MsgBox(16, "LineToClip - Error", "Se ha producido un error al leer al leer la linea " & $int_ArchivoRegistrosBaseDatos_LineaActual & " del archivo " & $str_Archivo & "." & @CRLF & @CRLF & "Número de error del programa: E085", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case -1
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
$bool_ArchivoFinalAlcanzado = True
EndSwitch

If StringLeft($str_Linea, 1) = "*" Then
$str_Linea = StringTrimLeft($str_Linea, 1)
$str_Registro = StringTrimRight($str_Linea, 1)
Else
$str_Registro = $str_Registro & @CRLF & StringTrimRight($str_Linea, 1)
EndIf
EndIf

If $bool_ArchivoRegistrosBaseDatos_ErrorFormato = True Then
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaBackup
$int_ResultadoUI_ErrorFormato = LineToClipBaseDatos_ErrorFormato($int_ArchivoRegistrosBaseDatos_LineaActual, $str_Registro)
Select
Case $int_ResultadoUI_ErrorFormato = 1
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 2
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 3
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual - 1
ContinueLoop
Case $int_ResultadoUI_ErrorFormato = 4
ContinueLoop
Case Else
MsgBox(16, "LineToClip - Error", "La función 'LineToClipBaseDatos_ErrorFormato' ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E086", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
EndIf

_ClipBoard_SetData($str_Registro, $CF_UNICODETEXT)

If ProcessExists("gmw5.exe") = 0 Then
$str_GoldMine5User = _StringEncrypt(0, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E087", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(0, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E088", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$int_PIDGoldMine = Run('"' & $str_CarpetaGoldMine & '\gmw5.exe" /i:esm /u:' & $str_GoldMine5User & ' /p:' & $str_GoldMine5Password, "", @SW_MAXIMIZE , 0)
If $int_PIDGoldMine <> 0 Then
Sleep($int_TiempoEsperaEjecutarGoldMine)
Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar ejecutar GoldMine. Ejecute GoldMine manualmente antes de iniciar la lectura de un archivo." & @CRLF & @CRLF & "Número de error del programa: E089", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 9
EndIf
$str_GoldMine5User = _StringEncrypt(1, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E090", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(1, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E091", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
EndIf
$int_ResultadoWinGetState = WinGetState("GoldMine 5.5")
If $int_ResultadoWinGetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar obtener el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E092", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Else
If BitAnd($int_ResultadoWinGetState, 16) Then
$int_ResultadoWinSetState = WinSetState("GoldMine 5.5", "", @SW_RESTORE)
If $int_ResultadoWinSetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar establecer el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E093", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf
$handle_VentanaGoldMinePrincipal = WinActivate("GoldMine 5.5")
If $handle_VentanaGoldMinePrincipal = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E094", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
; Esto es lo equivalente a "Ctrl+S"
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: E095", 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: E096", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Send("!h", 0)
Send("n", 0)
Sleep($int_TiempoEsperaAbrirVentana)
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: E097", 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: E098", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
EndIf
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: E099", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Else
MsgBox(16, "LineToClip - Error", "No se ha encontrado 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: E100", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("^v", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{ENTER}", 0)
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: E101", 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: E102", 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: E103", 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: E104", 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: E105", 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: E106", 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: E107", 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: E108", 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: E109", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Case $int_IsPressedResultado = 7
Send("{ESC}", 0)
Case Else
MsgBox(16, "LineToClip - Error", "La función 'MsgBox' de AutoIt ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E110", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
Else
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: E111", 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: E112", 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: E113", 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: E114", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf

Sleep($int_TiempoEsperaFinalizarRegistro)

ElseIf $str_Linea = "" Then
Sleep($int_TiempoEsperaFinalizarRegistro)

Else
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = False

If StringRight($str_Linea, 1) = "*" Then
$bool_ArchivoRegistrosBaseDatos_ErrorFormato = True
EndIf

If $bool_ArchivoRegistrosBaseDatos_ErrorFormato = True Then
$int_ResultadoUI_ErrorFormato = LineToClipBaseDatos_ErrorFormato($int_ArchivoRegistrosBaseDatos_LineaActual, $str_Linea)
Select
Case $int_ResultadoUI_ErrorFormato = 1
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 2
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Case $int_ResultadoUI_ErrorFormato = 3
$int_ArchivoRegistrosBaseDatos_LineaActual = $int_ArchivoRegistrosBaseDatos_LineaActual - 1
ContinueLoop
Case $int_ResultadoUI_ErrorFormato = 4
ContinueLoop
Case Else
MsgBox(16, "LineToClip - Error", "La función 'LineToClipBaseDatos_ErrorFormato' ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E115", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
EndIf

_ClipBoard_SetData($str_Linea, $CF_UNICODETEXT)

If ProcessExists("gmw5.exe") = 0 Then
$str_GoldMine5User = _StringEncrypt(0, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E116", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(0, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E117", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$int_PIDGoldMine = Run('"' & $str_CarpetaGoldMine & '\gmw5.exe" /i:esm /u:' & $str_GoldMine5User & ' /p:' & $str_GoldMine5Password, "", @SW_MAXIMIZE , 0)
If $int_PIDGoldMine <> 0 Then
Sleep($int_TiempoEsperaEjecutarGoldMine)
Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar ejecutar GoldMine. Ejecute GoldMine manualmente antes de iniciar la lectura de un archivo." & @CRLF & @CRLF & "Número de error del programa: E118", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 9
EndIf
$str_GoldMine5User = _StringEncrypt(1, $str_GoldMine5User, $str_GoldMine5Key, 1)
If $str_GoldMine5User == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E119", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
$str_GoldMine5Password = _StringEncrypt(1, $str_GoldMine5Password, $str_GoldMine5Key, 1)
If $str_GoldMine5Password == "" Or @error = 1 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al procesar los datos de nombre de usuario o contraseña para ejecutar GoldMine." & @CRLF & @CRLF & "Número de error del programa: E120", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
DllClose($handle_shell32)
$int_ErrorModeAnterior = _WinAPI_SetErrorMode($int_ErrorModePrevio)
Exit 8
EndIf
EndIf
$int_ResultadoWinGetState = WinGetState("GoldMine 5.5")
If $int_ResultadoWinGetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar obtener el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E121", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
Else
If BitAnd($int_ResultadoWinGetState, 16) Then
$int_ResultadoWinSetState = WinSetState("GoldMine 5.5", "", @SW_RESTORE)
If $int_ResultadoWinSetState = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar establecer el estado de la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E122", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf
$handle_VentanaGoldMinePrincipal = WinActivate("GoldMine 5.5")
If $handle_VentanaGoldMinePrincipal = 0 Then
MsgBox(16, "LineToClip - Error", "Se ha producido un error al intentar activar la ventana principal de GoldMine. Puede que el programa no esté ejecutándose o esté tardando demasiado en comenzar a ejecutarse." & @CRLF & @CRLF & "Número de error del programa: E123", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
; Esto es lo equivalente a "Ctrl+S"
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: E124", 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: E125", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Send("!h", 0)
Send("n", 0)
Sleep($int_TiempoEsperaAbrirVentana)
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: E126", 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: E127", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Sleep($int_TiempoEsperaAbrirVentana)
EndIf
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: E128", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Else
MsgBox(16, "LineToClip - Error", "No se ha encontrado 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: E129", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
Send("^v", 0)
Send("{TAB}", 0)
Send("^v", 0)
Send("{ENTER}", 0)
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: E130", 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: E131", 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: E132", 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: E133", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
$int_ResultadoWinWaitClose = WinWaitClose("GoldMine", "Ya hay un registro", 0)

--
Nice program indeed

Options: Reply | Quote | Up ^


#16 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:16 | IP: IP Logged

Part V

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: E134", 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: E135", 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: E136", 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: E137", 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: E138", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
Case $int_IsPressedResultado = 7
Send("{ESC}", 0)
Case Else
MsgBox(16, "LineToClip - Error", "La función 'MsgBox' de AutoIt ha indicado un valor de retorno inesperado." & @CRLF & @CRLF & "Número de error del programa: E139", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndSelect
Else
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: E140", 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: E141", 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: E142", 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: E143", 300)
FileClose($handle_ArchivoRegistrosBaseDatos)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf
EndIf
EndIf

Sleep($int_TiempoEsperaFinalizarRegistro)

EndIf
Wend

$int_ErrorFileClose = FileClose($handle_ArchivoRegistrosBaseDatos)
If $int_ErrorFileClose <> 1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no ha podido ser cerrado. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo." & @CRLF & @CRLF & "Número de error del programa: E144", 300)
$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return
EndIf

$str_Archivo = ""
TraySetClick(8)
TraySetState(8)
Return

EndFunc

;===============================================================================

Func LineToClipCarpetas_ErrorFormato($int_ArchivoCarpetas_LineaActual = 0, $str_Linea = "")
Local $handle_UIErrorFormato
Local $ctrlid_LabelTexto
Local $ctrlid_LabelErrorLinea
Local $ctrlid_InputErrorLinea
Local $ctrlid_LabelErrorTexto
Local $ctrlid_EditErrorTexto
Local $ctrlid_LabelSaltarLinea
Local $ctrlid_InputSaltarLinea
Local $ctrlid_ButtonDetener
Local $ctrlid_ButtonEditar
Local $ctrlid_ButtonReintentar
Local $ctrlid_ButtonSaltar
Local $int_InputReintentarLinea_Temp = 0
Local $int_MensajeGUIErrorFormato = 0
Local $int_Resultado = 0
Local $int_ResultadoUsuario = 0

$handle_UIErrorFormato = GUICreate("LineToClip - Error de formato en el fichero", 300, 280, (@DesktopWidth/2)-150, (@DesktopHeight/2)-140, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIErrorFormato = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Se ha encontrado un error en el formato del fichero de carpetas.", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelErrorLinea = GUICtrlCreateLabel("Línea inicial del error:", 20, 50, 260, 20, $SS_LEFT)
$ctrlid_InputErrorLinea = GUICtrlCreateInput("?", 20, 70, 260, 20, BitOr($ES_CENTER, $ES_NUMBER, $ES_READONLY))
$ctrlid_LabelErrorTexto = GUICtrlCreateLabel("Datos erroneos leídos:", 20, 100, 260, 20, $SS_LEFT)
$ctrlid_EditErrorTexto = GUICtrlCreateEdit("?", 20, 120, 260, 90, BitOr($ES_LEFT, $ES_MULTILINE, $ES_READONLY, $WS_VSCROLL, $WS_HSCROLL))
$ctrlid_ButtonDetener = GUICtrlCreateButton("Detener", 20, 240, 60, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonEditar = GUICtrlCreateButton("Editar", 87, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonReintentar = GUICtrlCreateButton("Reintentar", 153, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonSaltar = GUICtrlCreateButton("Saltar", 220, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelErrorLinea = 0 Or $ctrlid_InputErrorLinea = 0 Or $ctrlid_LabelErrorTexto = 0 Or $ctrlid_EditErrorTexto = 0 Or $ctrlid_ButtonDetener = 0 Or $ctrlid_ButtonEditar = 0 Or $ctrlid_ButtonReintentar = 0 Or $ctrlid_ButtonSaltar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetData($ctrlid_InputErrorLinea, $int_ArchivoCarpetas_LineaActual) = 0 Or GUICtrlSetData($ctrlid_EditErrorTexto, $str_Linea) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonDetener, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonEditar, $GUI_SHOW+$GUI_ENABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonReintentar, $GUI_SHOW+$GUI_DISABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonSaltar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_ButtonDetener, "El botón Detener cierra esta ventana y no continúa leyendo líneas del fichero.", "Detener", 1, 1)
GUICtrlSetTip($ctrlid_ButtonEditar, "El botón Editar abre el programa editor de texto para modificar el fichero.", "Editar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonReintentar, "El botón Reintentar cierra esta ventana y trata de leer de nuevo la misma línea " & @CRLF & "en que se encontró el error de formato.", "Reintentar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonSaltar, "El botón Saltar cierra esta ventana y continúa leyendo líneas del fichero a partir " & @CRLF & "de la línea siguiente a aquella en que se encontró el error de formato.", "Saltar", 1, 1)

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIErrorFormato = GUIGetMsg()
Select
Case $int_MensajeGUIErrorFormato = $GUI_EVENT_CLOSE
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonDetener
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonEditar
ShellExecute('"' & $str_Archivo & '"', "")
ContinueLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonReintentar
$int_ResultadoUsuario = 3
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonSaltar
$int_ResultadoUsuario = 4
ExitLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelErrorLinea) = 0 Or GUICtrlDelete($ctrlid_InputErrorLinea) = 0 Or GUICtrlDelete($ctrlid_LabelErrorTexto) = 0 Or GUICtrlDelete($ctrlid_EditErrorTexto) = 0 Or GUICtrlDelete($ctrlid_ButtonDetener) = 0 Or GUICtrlDelete($ctrlid_ButtonEditar) = 0 Or GUICtrlDelete($ctrlid_ButtonReintentar) = 0 Or GUICtrlDelete($ctrlid_ButtonSaltar) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIErrorFormato) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return $int_ResultadoUsuario

EndFunc

;===============================================================================

Func LineToClipURLs_ErrorFormato($int_ArchivoURLs_LineaActual = 0, $str_Linea = "")
Local $handle_UIErrorFormato
Local $ctrlid_LabelTexto
Local $ctrlid_LabelErrorLinea
Local $ctrlid_InputErrorLinea
Local $ctrlid_LabelErrorTexto
Local $ctrlid_EditErrorTexto
Local $ctrlid_LabelSaltarLinea
Local $ctrlid_InputSaltarLinea
Local $ctrlid_ButtonDetener
Local $ctrlid_ButtonEditar
Local $ctrlid_ButtonReintentar
Local $ctrlid_ButtonSaltar
Local $int_InputReintentarLinea_Temp = 0
Local $int_MensajeGUIErrorFormato = 0
Local $int_Resultado = 0
Local $int_ResultadoUsuario = 0

$handle_UIErrorFormato = GUICreate("LineToClip - Error de formato en el fichero", 300, 280, (@DesktopWidth/2)-150, (@DesktopHeight/2)-140, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIErrorFormato = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Se ha encontrado un error en el formato del fichero de URLs.", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelErrorLinea = GUICtrlCreateLabel("Línea inicial del error:", 20, 50, 260, 20, $SS_LEFT)
$ctrlid_InputErrorLinea = GUICtrlCreateInput("?", 20, 70, 260, 20, BitOr($ES_CENTER, $ES_NUMBER, $ES_READONLY))
$ctrlid_LabelErrorTexto = GUICtrlCreateLabel("Datos erroneos leídos:", 20, 100, 260, 20, $SS_LEFT)
$ctrlid_EditErrorTexto = GUICtrlCreateEdit("?", 20, 120, 260, 90, BitOr($ES_LEFT, $ES_MULTILINE, $ES_READONLY, $WS_VSCROLL, $WS_HSCROLL))
$ctrlid_ButtonDetener = GUICtrlCreateButton("Detener", 20, 240, 60, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonEditar = GUICtrlCreateButton("Editar", 87, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonReintentar = GUICtrlCreateButton("Reintentar", 153, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonSaltar = GUICtrlCreateButton("Saltar", 220, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelErrorLinea = 0 Or $ctrlid_InputErrorLinea = 0 Or $ctrlid_LabelErrorTexto = 0 Or $ctrlid_EditErrorTexto = 0 Or $ctrlid_ButtonDetener = 0 Or $ctrlid_ButtonEditar = 0 Or $ctrlid_ButtonReintentar = 0 Or $ctrlid_ButtonSaltar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetData($ctrlid_InputErrorLinea, $int_ArchivoURLs_LineaActual) = 0 Or GUICtrlSetData($ctrlid_EditErrorTexto, $str_Linea) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonDetener, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonEditar, $GUI_SHOW+$GUI_ENABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonReintentar, $GUI_SHOW+$GUI_DISABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonSaltar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_ButtonDetener, "El botón Detener cierra esta ventana y no continúa leyendo líneas del fichero.", "Detener", 1, 1)
GUICtrlSetTip($ctrlid_ButtonEditar, "El botón Editar abre el programa editor de texto para modificar el fichero.", "Editar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonReintentar, "El botón Reintentar cierra esta ventana y trata de leer de nuevo la misma línea " & @CRLF & "en que se encontró el error de formato.", "Reintentar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonSaltar, "El botón Saltar cierra esta ventana y continúa leyendo líneas del fichero a partir " & @CRLF & "de la línea siguiente a aquella en que se encontró el error de formato.", "Saltar", 1, 1)

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIErrorFormato = GUIGetMsg()
Select
Case $int_MensajeGUIErrorFormato = $GUI_EVENT_CLOSE
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonDetener
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonEditar
ShellExecute('"' & $str_Archivo & '"', "")
ContinueLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonReintentar
$int_ResultadoUsuario = 3
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonSaltar
$int_ResultadoUsuario = 4
ExitLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelErrorLinea) = 0 Or GUICtrlDelete($ctrlid_InputErrorLinea) = 0 Or GUICtrlDelete($ctrlid_LabelErrorTexto) = 0 Or GUICtrlDelete($ctrlid_EditErrorTexto) = 0 Or GUICtrlDelete($ctrlid_ButtonDetener) = 0 Or GUICtrlDelete($ctrlid_ButtonEditar) = 0 Or GUICtrlDelete($ctrlid_ButtonReintentar) = 0 Or GUICtrlDelete($ctrlid_ButtonSaltar) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIErrorFormato) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return $int_ResultadoUsuario

EndFunc

;===============================================================================

Func LineToClipBaseDatos_ErrorFormato($int_ArchivoRegistrosBaseDatos_LineaActual = 0, $str_Registro = "")
Local $handle_UIErrorFormato
Local $ctrlid_LabelTexto
Local $ctrlid_LabelErrorLinea
Local $ctrlid_InputErrorLinea
Local $ctrlid_LabelErrorTexto
Local $ctrlid_EditErrorTexto
Local $ctrlid_LabelSaltarLinea
Local $ctrlid_InputSaltarLinea
Local $ctrlid_ButtonDetener
Local $ctrlid_ButtonEditar
Local $ctrlid_ButtonReintentar
Local $ctrlid_ButtonSaltar
Local $int_InputReintentarLinea_Temp = 0
Local $int_MensajeGUIErrorFormato = 0
Local $int_Resultado = 0
Local $int_ResultadoUsuario = 0

$handle_UIErrorFormato = GUICreate("LineToClip - Error de formato en el fichero", 300, 280, (@DesktopWidth/2)-150, (@DesktopHeight/2)-140, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIErrorFormato = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Se ha encontrado un error en el formato del fichero de registros para base de datos.", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelErrorLinea = GUICtrlCreateLabel("Línea inicial del error:", 20, 50, 260, 20, $SS_LEFT)
$ctrlid_InputErrorLinea = GUICtrlCreateInput("?", 20, 70, 260, 20, BitOr($ES_CENTER, $ES_NUMBER, $ES_READONLY))
$ctrlid_LabelErrorTexto = GUICtrlCreateLabel("Datos erroneos leídos:", 20, 100, 260, 20, $SS_LEFT)
$ctrlid_EditErrorTexto = GUICtrlCreateEdit("?", 20, 120, 260, 90, BitOr($ES_LEFT, $ES_MULTILINE, $ES_READONLY, $WS_VSCROLL, $WS_HSCROLL))
$ctrlid_ButtonDetener = GUICtrlCreateButton("Detener", 20, 240, 60, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonEditar = GUICtrlCreateButton("Editar", 87, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonReintentar = GUICtrlCreateButton("Reintentar", 153, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
$ctrlid_ButtonSaltar = GUICtrlCreateButton("Saltar", 220, 240, 60, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelErrorLinea = 0 Or $ctrlid_InputErrorLinea = 0 Or $ctrlid_LabelErrorTexto = 0 Or $ctrlid_EditErrorTexto = 0 Or $ctrlid_ButtonDetener = 0 Or $ctrlid_ButtonEditar = 0 Or $ctrlid_ButtonReintentar = 0 Or $ctrlid_ButtonSaltar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetData($ctrlid_InputErrorLinea, $int_ArchivoRegistrosBaseDatos_LineaActual) = 0 Or GUICtrlSetData($ctrlid_EditErrorTexto, $str_Registro) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonDetener, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonEditar, $GUI_SHOW+$GUI_ENABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonReintentar, $GUI_SHOW+$GUI_DISABLE) = 0 Or GUICtrlSetState($ctrlid_ButtonSaltar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_ButtonDetener, "El botón Detener cierra esta ventana y no continúa leyendo líneas del fichero.", "Detener", 1, 1)
GUICtrlSetTip($ctrlid_ButtonEditar, "El botón Editar abre el programa editor de texto para modificar el fichero.", "Editar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonReintentar, "El botón Reintentar cierra esta ventana y trata de leer de nuevo la misma línea " & @CRLF & "en que se encontró el error de formato.", "Reintentar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonSaltar, "El botón Saltar cierra esta ventana y continúa leyendo líneas del fichero a partir " & @CRLF & "de la línea siguiente a aquella en que se encontró el error de formato.", "Saltar", 1, 1)

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIErrorFormato = GUIGetMsg()
Select
Case $int_MensajeGUIErrorFormato = $GUI_EVENT_CLOSE
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonDetener
$int_ResultadoUsuario = 2
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonEditar
ShellExecute('"' & $str_Archivo & '"', "")
ContinueLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonReintentar
$int_ResultadoUsuario = 3
ExitLoop
Case $int_MensajeGUIErrorFormato = $ctrlid_ButtonSaltar
$int_ResultadoUsuario = 4
ExitLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIErrorFormato)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelErrorLinea) = 0 Or GUICtrlDelete($ctrlid_InputErrorLinea) = 0 Or GUICtrlDelete($ctrlid_LabelErrorTexto) = 0 Or GUICtrlDelete($ctrlid_EditErrorTexto) = 0 Or GUICtrlDelete($ctrlid_ButtonDetener) = 0 Or GUICtrlDelete($ctrlid_ButtonEditar) = 0 Or GUICtrlDelete($ctrlid_ButtonReintentar) = 0 Or GUICtrlDelete($ctrlid_ButtonSaltar) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIErrorFormato) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible notificar un error de formato en un fichero. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return $int_ResultadoUsuario

EndFunc

;===============================================================================

Func ConfiguracionTeclas_Elegir()
Local $handle_UIConfiguracion
Local $ctrlid_LabelTexto
Local $ctrlid_LabelCarpetas
Local $ctrlid_HotKeyInputCarpetas
Local $ctrlid_LabelURLs
Local $ctrlid_HotKeyInputURLs
Local $ctrlid_LabelBaseDatos
Local $ctrlid_HotKeyInputBaseDatos
Local $ctrlid_ButtonAceptar
Local $ctrlid_ButtonCancelar
Local $int_HotKeyCarpetas_Temp = 0
Local $int_HotKeyURLs_Temp = 0
Local $int_HotKeyBaseDatos_Temp = 0
Local $int_MensajeGUIConfiguracion = 0
Local $int_Resultado = 0

$handle_UIConfiguracion = GUICreate("LineToClip - Configurar métodos abreviados de teclado", 300, 280, (@DesktopWidth/2)-150, (@DesktopHeight/2)-140, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIConfiguracion = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Para elegir las teclas de método abreviado que activarán las características de LineToClip, seleccione el campo deseado y a continuación pulse la nueva combinación de teclas:", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelCarpetas = GUICtrlCreateLabel("Método abreviado para lectura de archivo de carpetas:", 20, 80, 260, 20, $SS_LEFT)
$ctrlid_HotKeyInputCarpetas = _GUICtrlHKI_Create(0, 20, 100, 260, 20, BitOr($ES_CENTER, $ES_AUTOHSCROLL), -1, "+")
$ctrlid_LabelURLs = GUICtrlCreateLabel("Método abreviado para lectura de archivo de URLs:", 20, 130, 260, 20, $SS_LEFT)
$ctrlid_HotKeyInputURLs = _GUICtrlHKI_Create(0, 20, 150, 260, 20, BitOr($ES_CENTER, $ES_AUTOHSCROLL), -1, "+")
$ctrlid_LabelBaseDatos = GUICtrlCreateLabel("Método abreviado para lectura de archivo de registros:", 20, 180, 260, 20, $SS_LEFT)
$ctrlid_HotKeyInputBaseDatos = _GUICtrlHKI_Create(0, 20, 200, 260, 20, BitOr($ES_CENTER, $ES_AUTOHSCROLL), -1, "+")
$ctrlid_ButtonAceptar = GUICtrlCreateButton("Aceptar", 90, 240, 50, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonCancelar = GUICtrlCreateButton("Cancelar", 160, 240, 50, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelCarpetas = 0 Or $ctrlid_HotKeyInputCarpetas = 0 Or $ctrlid_LabelURLs = 0 Or $ctrlid_HotKeyInputURLs = 0 Or $ctrlid_LabelBaseDatos = 0 Or $ctrlid_HotKeyInputBaseDatos = 0 Or $ctrlid_ButtonAceptar = 0 Or $ctrlid_ButtonCancelar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
_KeyLock(0x062E)
If _GUICtrlHKI_SetHotKey($ctrlid_HotKeyInputCarpetas, $int_HotKeyCarpetas) = 0 Or _GUICtrlHKI_SetHotKey($ctrlid_HotKeyInputURLs, $int_HotKeyURLs) = 0 Or _GUICtrlHKI_SetHotKey($ctrlid_HotKeyInputBaseDatos, $int_HotKeyBaseDatos) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonAceptar, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonCancelar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_HotKeyInputCarpetas, "Para modificar la tecla de método abreviado utilizada para activar la " & @CRLF & "lectura de un archivo de carpetas, seleccione este campo y a continuación " & @CRLF & "pulse el nuevo método abreviado de teclado.", "Método abreviado para lectura de archivo de carpetas", 1, 1)
GUICtrlSetTip($ctrlid_HotKeyInputURLs, "Para modificar la tecla de método abreviado utilizada para activar la " & @CRLF & "lectura de un archivo de URLs, seleccione este campo y a continuación " & @CRLF & "pulse el nuevo método abreviado de teclado.", "Método abreviado para lectura de archivo de URLs", 1, 1)
GUICtrlSetTip($ctrlid_HotKeyInputBaseDatos, "Para modificar la tecla de método abreviado utilizada para activar la " & @CRLF & "lectura de un archivo de registros, seleccione este campo y a continuación " & @CRLF & "pulse el nuevo método abreviado de teclado.", "Método abreviado para lectura de archivo de registros para GoldMine", 1, 1)
GUICtrlSetTip($ctrlid_ButtonAceptar, "El botón Aceptar cierra esta ventana y aplica las configuraciones modificadas.", "Aceptar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonCancelar, "El botón Cancelar cierra esta ventana y descarta las configuraciones modificadas.", "Cancelar", 1, 1)

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIConfiguracion = GUIGetMsg()
Select
Case $int_MensajeGUIConfiguracion = $GUI_EVENT_CLOSE
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonAceptar
$int_HotKeyCarpetas_Temp = _GUICtrlHKI_GetHotKey($ctrlid_HotKeyInputCarpetas)
If $int_HotKeyCarpetas_Temp = 0 Then
MsgBox(48, "LineToClip - Configurar métodos abreviados de teclado", "La tecla de método abreviado para la lectura de archivos de carpetas no es válida. Introduzca un método abreviado de teclado válido.", 300)
ContinueLoop
EndIf
$int_HotKeyURLs_Temp = _GUICtrlHKI_GetHotKey($ctrlid_HotKeyInputURLs)
If $int_HotKeyURLs_Temp = 0 Then
MsgBox(48, "LineToClip - Configurar métodos abreviados de teclado", "La tecla de método abreviado para la lectura de archivos de URLs no es válida. Introduzca un método abreviado de teclado válido.", 300)
ContinueLoop
EndIf
$int_HotKeyBaseDatos_Temp = _GUICtrlHKI_GetHotKey($ctrlid_HotKeyInputBaseDatos)
If $int_HotKeyBaseDatos_Temp = 0 Then
MsgBox(48, "LineToClip - Configurar métodos abreviados de teclado", "La tecla de método abreviado para la lectura de archivos de registros para GoldMine no es válida. Introduzca un método abreviado de teclado válido.", 300)
ContinueLoop
EndIf
$int_HotKeyCarpetas = $int_HotKeyCarpetas_Temp
$int_HotKeyURLs = $int_HotKeyURLs_Temp
$int_HotKeyBaseDatos = $int_HotKeyBaseDatos_Temp
ConfiguracionTeclas_Escribir()
ConfiguracionTeclas_Aplicar()
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonCancelar
ExitLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelCarpetas) = 0 Or _GUICtrlHKI_Destroy($ctrlid_HotKeyInputCarpetas) = 0 Or GUICtrlDelete($ctrlid_LabelURLs) = 0 Or _GUICtrlHKI_Destroy($ctrlid_HotKeyInputURLs) = 0 Or GUICtrlDelete($ctrlid_LabelBaseDatos) = 0 Or _GUICtrlHKI_Destroy($ctrlid_HotKeyInputBaseDatos) = 0 Or GUICtrlDelete($ctrlid_ButtonAceptar) = 0 Or GUICtrlDelete($ctrlid_ButtonCancelar) = 0 Or _GUICtrlHKI_Release() = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIConfiguracion) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las teclas de método abreviado. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return 0

EndFunc

;===============================================================================

Func ConfiguracionTiempos_Elegir()
Local $handle_UIConfiguracion
Local $ctrlid_LabelTexto
Local $ctrlid_LabelAbrirPagina
Local $ctrlid_InputAbrirPagina
Local $ctrlid_LabelAbrirVentana
Local $ctrlid_InputAbrirVentana
Local $ctrlid_LabelDetectarTeclas
Local $ctrlid_InputDetectarTeclas
Local $ctrlid_LabelEjecutarGoldMine
Local $ctrlid_InputEjecutarGoldMine
Local $ctrlid_LabelFinalizarRegistro
Local $ctrlid_InputFinalizarRegistro
Local $ctrlid_ButtonAceptar
Local $ctrlid_ButtonCancelar
Local $int_AbrirPagina_Temp = 0
Local $int_AbrirVentana_Temp = 0
Local $int_DetectarTeclas_Temp = 0
Local $int_EjecutarGoldMine_Temp = 0
Local $int_FinalizarRegistro_Temp = 0
Local $int_MensajeGUIConfiguracion = 0
Local $int_Resultado = 0

$handle_UIConfiguracion = GUICreate("LineToClip - Configurar tiempos de espera", 300, 380, (@DesktopWidth/2)-150, (@DesktopHeight/2)-190, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIConfiguracion = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Para elegir los tiempos de espera durante el procesado de archivos en LineToClip, seleccione el campo deseado y a continuación escriba el nuevo tiempo de espera en milisegundos:", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelAbrirPagina = GUICtrlCreateLabel("Tiempo de espera para la apertura de páginas web:", 20, 80, 260, 20, $SS_LEFT)
$ctrlid_InputAbrirPagina = GUICtrlCreateInput(4000, 20, 100, 260, 20, BitOr($ES_CENTER, $ES_NUMBER))
$ctrlid_LabelAbrirVentana = GUICtrlCreateLabel("Tiempo de espera para la apertura de ventanas:", 20, 130, 260, 20, $SS_LEFT)
$ctrlid_InputAbrirVentana = GUICtrlCreateInput(1000, 20, 150, 260, 20, BitOr($ES_CENTER, $ES_NUMBER))
$ctrlid_LabelDetectarTeclas = GUICtrlCreateLabel("Tiempo de espera para la detección de teclas:", 20, 180, 260, 20, $SS_LEFT)
$ctrlid_InputDetectarTeclas = GUICtrlCreateInput(500, 20, 200, 260, 20, BitOr($ES_CENTER, $ES_NUMBER))
$ctrlid_LabelEjecutarGoldMine = GUICtrlCreateLabel("Tiempo de espera para la ejecución de GoldMine:", 20, 230, 260, 20, $SS_LEFT)
$ctrlid_InputEjecutarGoldMine = GUICtrlCreateInput(5000, 20, 250, 260, 20, BitOr($ES_CENTER, $ES_NUMBER))
$ctrlid_LabelFinalizarRegistro = GUICtrlCreateLabel("Tiempo de espera al finalizar un registro:", 20, 280, 260, 20, $SS_LEFT)
$ctrlid_InputFinalizarRegistro = GUICtrlCreateInput(1000, 20, 300, 260, 20, BitOr($ES_CENTER, $ES_NUMBER))
$ctrlid_ButtonAceptar = GUICtrlCreateButton("Aceptar", 90, 340, 50, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonCancelar = GUICtrlCreateButton("Cancelar", 160, 340, 50, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelAbrirPagina = 0 Or $ctrlid_InputAbrirPagina = 0 Or $ctrlid_LabelAbrirVentana = 0 Or $ctrlid_InputAbrirVentana = 0 Or $ctrlid_LabelDetectarTeclas = 0 Or $ctrlid_InputDetectarTeclas = 0 Or $ctrlid_LabelEjecutarGoldMine = 0 Or $ctrlid_InputEjecutarGoldMine = 0 Or $ctrlid_LabelFinalizarRegistro = 0 Or $ctrlid_InputFinalizarRegistro = 0 Or $ctrlid_ButtonAceptar = 0 Or $ctrlid_ButtonCancelar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetData($ctrlid_InputAbrirPagina, $int_TiempoEsperaAbrirPagina) = 0 Or GUICtrlSetData($ctrlid_InputAbrirVentana, $int_TiempoEsperaAbrirVentana) = 0 Or GUICtrlSetData($ctrlid_InputDetectarTeclas, $int_TiempoEsperaAbrirVentanaYDetectarTeclas) = 0 Or GUICtrlSetData($ctrlid_InputEjecutarGoldMine, $int_TiempoEsperaEjecutarGoldMine) = 0 Or GUICtrlSetData($ctrlid_InputFinalizarRegistro, $int_TiempoEsperaFinalizarRegistro) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonAceptar, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonCancelar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_InputAbrirPagina, "Para modificar el tiempo que LineToClip espera para que se complete " & @CRLF & "la apertura de una página web en el navegador, seleccione este " & @CRLF & "campo y a continuación introduzca el tiempo deseado en " & @CRLF & "milisegundos.", "Tiempo de espera para la apertura de páginas web", 1, 1)
GUICtrlSetTip($ctrlid_InputAbrirVentana, "Para modificar el tiempo que LineToClip espera para que se abran " & @CRLF & "las ventanas de GoldMine, seleccione este campo y a continuación " & @CRLF & "introduzca el tiempo deseado en milisegundos.", "Tiempo de espera para la apertura de ventanas", 1, 1)
GUICtrlSetTip($ctrlid_InputDetectarTeclas, "Para modificar el tiempo que LineToClip espera para que se abra " & @CRLF & "la ventana Agregar nuevo registro y comience la detección de " & @CRLF & "pulsaciones de teclas, seleccione este campo y a continuación " & @CRLF & "introduzca el tiempo deseado en milisegundos.", "Tiempo de espera para la detección de teclas", 1, 1)
GUICtrlSetTip($ctrlid_InputEjecutarGoldMine, "Para modificar el tiempo que LineToClip espera para que se ejecute " & @CRLF & "GoldMine, seleccione este campo y a continuación introduzca el " & @CRLF & "tiempo deseado en milisegundos.", "Tiempo de espera para la ejecución de GoldMine", 1, 1)
GUICtrlSetTip($ctrlid_InputFinalizarRegistro, "Para modificar el tiempo que LineToClip espera después de procesar " & @CRLF & "una línea de un archivo o un registro, seleccione este campo y a " & @CRLF & "continuación introduzca el tiempo deseado en milisegundos.", "Tiempo de espera al finalizar un registro", 1, 1)
GUICtrlSetTip($ctrlid_ButtonAceptar, "El botón Aceptar cierra esta ventana y aplica las configuraciones modificadas.", "Aceptar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonCancelar, "El botón Cancelar cierra esta ventana y descarta las configuraciones modificadas.", "Cancelar", 1, 1)

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIConfiguracion = GUIGetMsg()
Select
Case $int_MensajeGUIConfiguracion = $GUI_EVENT_CLOSE
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonAceptar
$int_AbrirPagina_Temp = Int(GUICtrlRead($ctrlid_InputAbrirPagina, 0))
If $int_AbrirPagina_Temp <= 0 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la apertura de páginas web no es válido. Introduzca un tiempo de espera válido en milisegundos.", 300)
ContinueLoop
EndIf
If IsInt($int_AbrirPagina_Temp) = 0 Or $int_AbrirPagina_Temp < 100 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la apertura de páginas web es demasiado corto. Introduzca un tiempo de espera de al menos 100 milisegundos.", 300)
ContinueLoop
EndIf
$int_AbrirVentana_Temp = Int(GUICtrlRead($ctrlid_InputAbrirVentana, 0))
If $int_AbrirVentana_Temp <= 0 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la apertura de ventanas de GoldMine no es válido. Introduzca un tiempo de espera válido en milisegundos.", 300)
ContinueLoop
EndIf
If IsInt($int_AbrirVentana_Temp) = 0 Or $int_AbrirVentana_Temp < 100 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la apertura de ventanas de GoldMine es demasiado corto. Introduzca un tiempo de espera de al menos 100 milisegundos.", 300)
ContinueLoop
EndIf
$int_DetectarTeclas_Temp = Int(GUICtrlRead($ctrlid_InputDetectarTeclas, 0))
If $int_DetectarTeclas_Temp <= 0 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la detección de teclas no es válido. Introduzca un tiempo de espera válido en milisegundos.", 300)
ContinueLoop
EndIf
If IsInt($int_DetectarTeclas_Temp) = 0 Or $int_DetectarTeclas_Temp < 100 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para la detección de teclas es demasiado corto. Introduzca un tiempo de espera de al menos 100 milisegundos.", 300)
ContinueLoop
EndIf
$int_EjecutarGoldMine_Temp = Int(GUICtrlRead($ctrlid_InputEjecutarGoldMine, 0))
If $int_EjecutarGoldMine_Temp <= 0 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para ejecutar GoldMine no es válido. Introduzca un tiempo de espera válido en milisegundos.", 300)
ContinueLoop
EndIf
If IsInt($int_EjecutarGoldMine_Temp) = 0 Or $int_EjecutarGoldMine_Temp < 100 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera para ejecutar GoldMine es demasiado corto. Introduzca un tiempo de espera de al menos 100 milisegundos.", 300)
ContinueLoop
EndIf
$int_FinalizarRegistro_Temp = Int(GUICtrlRead($ctrlid_InputFinalizarRegistro, 0))
If $int_FinalizarRegistro_Temp <= 0 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera después de finalizar el procesado de un registro no es válido. Introduzca un tiempo de espera válido en milisegundos.", 300)
ContinueLoop
EndIf
If IsInt($int_FinalizarRegistro_Temp) = 0 Or $int_FinalizarRegistro_Temp < 100 Then
MsgBox(48, "LineToClip - Configurar tiempos de espera", "El tiempo de espera después de finalizar el procesado de un registro es demasiado corto. Introduzca un tiempo de espera de al menos 100 milisegundos.", 300)
ContinueLoop
EndIf
$int_TiempoEsperaAbrirPagina = $int_AbrirPagina_Temp
$int_TiempoEsperaAbrirVentana = $int_AbrirVentana_Temp
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = $int_DetectarTeclas_Temp
$int_TiempoEsperaEjecutarGoldMine = $int_EjecutarGoldMine_Temp
$int_TiempoEsperaFinalizarRegistro = $int_FinalizarRegistro_Temp
ConfiguracionTiempos_Escribir()
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonCancelar
ExitLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelAbrirPagina) = 0 Or GUICtrlDelete($ctrlid_InputAbrirPagina) = 0 Or GUICtrlDelete($ctrlid_LabelAbrirVentana) = 0 Or GUICtrlDelete($ctrlid_InputAbrirVentana) = 0 Or GUICtrlDelete($ctrlid_LabelDetectarTeclas) = 0 Or GUICtrlDelete($ctrlid_InputDetectarTeclas) = 0 Or GUICtrlDelete($ctrlid_LabelEjecutarGoldMine) = 0 Or GUICtrlDelete($ctrlid_InputEjecutarGoldMine) = 0 Or GUICtrlDelete($ctrlid_LabelFinalizarRegistro) = 0 Or GUICtrlDelete($ctrlid_InputFinalizarRegistro) = 0 Or GUICtrlDelete($ctrlid_ButtonAceptar) = 0 Or GUICtrlDelete($ctrlid_ButtonCancelar) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIConfiguracion) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar los tiempos de espera. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return 0

EndFunc

;===============================================================================

Func ConfiguracionCarpetas_Elegir()
Local $handle_UIConfiguracion
Local $ctrlid_LabelTexto
Local $ctrlid_LabelCarpetaTexto
Local $ctrlid_InputCarpetaTexto
Local $ctrlid_ButtonExaminarTexto
Local $ctrlid_LabelCarpetaGoldMine
Local $ctrlid_InputCarpetaGoldMine
Local $ctrlid_ButtonExaminarGoldMine
Local $ctrlid_ButtonAceptar
Local $ctrlid_ButtonCancelar
Local $int_MensajeGUIConfiguracion = 0
Local $int_Resultado = 0
Local $str_BrowseForFolderDlg_Temp = ""
Local $str_CarpetaTexto_Temp = ""
Local $str_CarpetaGoldMine_Temp = ""

$handle_UIConfiguracion = GUICreate("LineToClip - Configurar carpetas", 300, 230, (@DesktopWidth/2)-150, (@DesktopHeight/2)-115, BitOr($WS_CAPTION, $WS_POPUP, $WS_CLIPSIBLINGS, $WS_DLGFRAME))
If $handle_UIConfiguracion = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible crear una ventana de GUI.", 300)
Return 1
EndIf
$ctrlid_LabelTexto = GUICtrlCreateLabel("Para elegir las carpetas por defecto utilizadas por LineToClip, seleccione el campo deseado y a continuación escriba la nueva ruta de carpeta o pulse el botón Examinar:", 10, 10, 280, 70, $SS_CENTER)
$ctrlid_LabelCarpetaTexto = GUICtrlCreateLabel("Carpeta por defecto de los archivos de texto:", 20, 80, 260, 20, $SS_LEFT)
$ctrlid_InputCarpetaTexto = GUICtrlCreateInput(@HomeDrive & @HomePath, 20, 100, 230, 20, BitOr($ES_LEFT, $ES_AUTOHSCROLL))
$ctrlid_ButtonExaminarTexto = GUICtrlCreateButton("...", 255, 100, 25, 20, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_LabelCarpetaGoldMine = GUICtrlCreateLabel("Carpeta de programa de GoldMine 5.5:", 20, 130, 260, 20, $SS_LEFT)
$ctrlid_InputCarpetaGoldMine = GUICtrlCreateInput("Y:\GoldminePrg", 20, 150, 230, 20, BitOr($ES_LEFT, $ES_AUTOHSCROLL))
$ctrlid_ButtonExaminarGoldMine = GUICtrlCreateButton("...", 255, 150, 25, 20, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonAceptar = GUICtrlCreateButton("Aceptar", 90, 190, 50, 25, BitOr($BS_CENTER, $BS_DEFPUSHBUTTON, $BS_VCENTER))
$ctrlid_ButtonCancelar = GUICtrlCreateButton("Cancelar", 160, 190, 50, 25, BitOr($BS_CENTER, $BS_VCENTER))
If $ctrlid_LabelTexto = 0 Or $ctrlid_LabelCarpetaTexto = 0 Or $ctrlid_InputCarpetaTexto = 0 Or $ctrlid_ButtonExaminarTexto = 0 Or $ctrlid_LabelCarpetaGoldMine = 0 Or $ctrlid_InputCarpetaGoldMine = 0 Or $ctrlid_ButtonExaminarGoldMine = 0 Or $ctrlid_ButtonAceptar = 0 Or $ctrlid_ButtonCancelar = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible crear elementos sobre una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetData($ctrlid_InputCarpetaTexto, $str_CarpetaTexto) = 0 Or GUICtrlSetData($ctrlid_InputCarpetaGoldMine, $str_CarpetaGoldMine) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
If GUICtrlSetState($ctrlid_ButtonAceptar, $GUI_SHOW+$GUI_ENABLE+$GUI_FOCUS+$GUI_DEFBUTTON) = 0 Or GUICtrlSetState($ctrlid_ButtonCancelar, $GUI_SHOW+$GUI_ENABLE) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
GUICtrlSetTip($ctrlid_InputCarpetaTexto, "Para modificar la carpeta por defecto en la que LineToClip busca los " & @CRLF & "archivos de texto a procesar, escriba la ruta completa de dicha " & @CRLF & "carpeta en este campo.", "Carpeta por defecto de los archivos de texto", 1, 1)
GUICtrlSetTip($ctrlid_ButtonExaminarTexto, "Para modificar la carpeta por defecto en la que LineToClip busca los " & @CRLF & "archivos de texto a procesar, pulse el botón Examinar y a continuación " & @CRLF & "seleccione la carpeta deseada.", "Examinar", 1, 1)
GUICtrlSetTip($ctrlid_InputCarpetaGoldMine, "Para modificar la carpeta en la que LineToClip busca el archivo " & @CRLF & "gmw5.exe para ejecutar GoldMine si está cerrado, escriba la ruta " & @CRLF & "completa de dicha carpeta en este campo.", "Carpeta de programa de GoldMine 5.5", 1, 1)
GUICtrlSetTip($ctrlid_ButtonExaminarGoldMine, "Para modificar la carpeta en la que LineToClip busca el archivo " & @CRLF & "gmw5.exe para ejecutar GoldMine si está cerrado, pulse el botón " & @CRLF & "Examinar y a continuación seleccione la carpeta deseada.", "Examinar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonAceptar, "El botón Aceptar cierra esta ventana y aplica las configuraciones modificadas.", "Aceptar", 1, 1)
GUICtrlSetTip($ctrlid_ButtonCancelar, "El botón Cancelar cierra esta ventana y descarta las configuraciones modificadas.", "Cancelar", 1, 1)

--
Nice program indeed

Options: Reply | Quote | Up ^


#17 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:17 | IP: IP Logged

Sorry but it's too large

Part VI

$int_Resultado = GUISetState(@SW_SHOW, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible mostrar una ventana de GUI.", 300)
Return 1
EndIf

While 1
$int_MensajeGUIConfiguracion = GUIGetMsg()
Select
Case $int_MensajeGUIConfiguracion = $GUI_EVENT_CLOSE
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonAceptar
$str_CarpetaTexto_Temp = String(GUICtrlRead($ctrlid_InputCarpetaTexto))
If $str_CarpetaTexto_Temp = "" Then
MsgBox(48, "LineToClip - Configurar carpetas", "No ha introducido una carpeta por defecto de los archivos de texto. Introduzca una ruta de carpeta válida.", 300)
ContinueLoop
EndIf
If IsString($str_CarpetaTexto_Temp) = 0 Or FileExists($str_CarpetaTexto_Temp) = 0 Then
MsgBox(48, "LineToClip - Configurar carpetas", "La carpeta por defecto de los archivos de texto no existe. Corrija la ruta de la carpeta o seleccione una carpeta distinta.", 300)
ContinueLoop
EndIf
$str_CarpetaGoldMine_Temp = String(GUICtrlRead($ctrlid_InputCarpetaGoldMine, 0))
If $str_CarpetaGoldMine_Temp = "" Then
MsgBox(48, "LineToClip - Configurar carpetas", "No ha introducido la carpeta de programa de GoldMine 5.5. Introduzca una ruta de carpeta válida.", 300)
ContinueLoop
EndIf
If IsString($str_CarpetaGoldMine_Temp) = 0 Or FileExists($str_CarpetaGoldMine_Temp & '\gmw5.exe') = 0 Then
MsgBox(48, "LineToClip - Configurar carpetas", "La carpeta de programa de GoldMine no existe o no contiene el archivo ejecutable gmw5.exe de GoldMine 5.5. Corrija la ruta de la carpeta o seleccione una carpeta distinta.", 300)
ContinueLoop
EndIf
$str_CarpetaTexto = $str_CarpetaTexto_Temp
$str_CarpetaGoldMine = $str_CarpetaGoldMine_Temp
ConfiguracionCarpetas_Escribir()
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonCancelar
ExitLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonExaminarTexto
$str_BrowseForFolderDlg_Temp = _WinAPI_BrowseForFolderDlg(0, "Carpeta por defecto de los archivos de texto:", BitOr($BIF_RETURNONLYFSDIRS, $BIF_NONEWFOLDERBUTTON), 0, 0, 0)
If $str_BrowseForFolderDlg_Temp = "" Then
ContinueLoop
EndIf
$str_CarpetaTexto_Temp = $str_BrowseForFolderDlg_Temp
If GUICtrlSetData($ctrlid_InputCarpetaTexto, $str_CarpetaTexto_Temp) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
ContinueLoop
Case $int_MensajeGUIConfiguracion = $ctrlid_ButtonExaminarGoldMine
$str_BrowseForFolderDlg_Temp = _WinAPI_BrowseForFolderDlg(0, "Carpeta de programa de GoldMine 5.5:", BitOr($BIF_RETURNONLYFSDIRS, $BIF_NONEWFOLDERBUTTON), 0, 0, 0)
If $str_BrowseForFolderDlg_Temp = "" Then
ContinueLoop
EndIf
$str_CarpetaGoldMine_Temp = $str_BrowseForFolderDlg_Temp
If GUICtrlSetData($ctrlid_InputCarpetaGoldMine, $str_CarpetaGoldMine_Temp) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible establecer el estado de elementos de una ventana de GUI.", 300)
Return 1
EndIf
ContinueLoop
EndSelect
WEnd

$int_Resultado = GUISetState(@SW_HIDE, $handle_UIConfiguracion)
If $int_Resultado = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible ocultar una ventana de GUI.", 300)
Return 1
EndIf

If GUICtrlDelete($ctrlid_LabelTexto) = 0 Or GUICtrlDelete($ctrlid_LabelCarpetaTexto) = 0 Or GUICtrlDelete($ctrlid_InputCarpetaTexto) = 0 Or GUICtrlDelete($ctrlid_ButtonExaminarTexto) = 0 Or GUICtrlDelete($ctrlid_LabelCarpetaGoldMine) = 0 Or GUICtrlDelete($ctrlid_InputCarpetaGoldMine) = 0 Or GUICtrlDelete($ctrlid_ButtonExaminarGoldMine) = 0 Or GUICtrlDelete($ctrlid_ButtonAceptar) = 0 Or GUICtrlDelete($ctrlid_ButtonCancelar) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible eliminar elementos de la ventana de GUI.", 300)
Return 1
EndIf
If GUIDelete($handle_UIConfiguracion) = 0 Then
MsgBox(16, "LineToClip - Error", "No es posible configurar las carpetas utilizadas por el programa. No ha sido posible eliminar una ventana de GUI.", 300)
Return 1
EndIf

Return 0

EndFunc

;===============================================================================

Func LeerConfiguracion()
Local $int_Error = 0
Local $str_InputBox = ""

$int_HotKeyCarpetas = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas")
If $int_HotKeyCarpetas == "" Then
Switch @error
Case 1
$int_Error = 1
$int_HotKeyCarpetas = 0x0643
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", 0x0643)
Case 2, 3
$int_Error = 2
$int_HotKeyCarpetas = 0x0643
Case -1, -2
$int_Error = 1
$int_HotKeyCarpetas = 0x0643
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", 0x0643)
Case Else
$int_Error = 3
$int_HotKeyCarpetas = 0x0643
EndSwitch
EndIf
If $int_HotKeyCarpetas < 0x0001 Or $int_HotKeyCarpetas > 0x0FFF Then
$int_Error = 1
$int_HotKeyCarpetas = 0x0643
EndIf

$int_HotKeyURLs = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs")
If $int_HotKeyURLs == "" Then
Switch @error
Case 1
$int_Error = 1
$int_HotKeyURLs = 0x0655
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", 0x0655)
Case 2, 3
$int_Error = 2
$int_HotKeyURLs = 0x0655
Case -1, -2
$int_Error = 1
$int_HotKeyURLs = 0x0655
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", 0x0655)
Case Else
$int_Error = 3
$int_HotKeyURLs = 0x0655
EndSwitch
EndIf
If $int_HotKeyURLs < 0x0001 Or $int_HotKeyURLs > 0x0FFF Then
$int_Error = 1
$int_HotKeyURLs = 0x0655
EndIf

$int_HotKeyBaseDatos = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos")
If $int_HotKeyBaseDatos == "" Then
Switch @error
Case 1
$int_Error = 1
$int_HotKeyBaseDatos = 0x0652
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", 0x0652)
Case 2, 3
$int_Error = 2
$int_HotKeyBaseDatos = 0x0652
Case -1, -2
$int_Error = 1
$int_HotKeyBaseDatos = 0x0652
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", 0x0652)
Case Else
$int_Error = 3
$int_HotKeyBaseDatos = 0x0652
EndSwitch
EndIf
If $int_HotKeyBaseDatos < 0x0001 Or $int_HotKeyBaseDatos > 0x0FFF Then
$int_Error = 1
$int_HotKeyBaseDatos = 0x0655
EndIf

$int_TiempoEsperaAbrirPagina = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina")
If $int_TiempoEsperaAbrirPagina == "" Then
Switch @error
Case 1
$int_Error = 1
$int_TiempoEsperaAbrirPagina = 4000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", 4000)
Case 2, 3
$int_Error = 2
$int_TiempoEsperaAbrirPagina = 4000
Case -1, -2
$int_Error = 1
$int_TiempoEsperaAbrirPagina = 4000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", 4000)
Case Else
$int_Error = 3
$int_TiempoEsperaAbrirPagina = 4000
EndSwitch
EndIf
If $int_TiempoEsperaAbrirPagina < 100 Then
$int_Error = 1
$int_TiempoEsperaAbrirPagina = 4000
EndIf

$int_TiempoEsperaAbrirVentana = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana")
If $int_TiempoEsperaAbrirVentana == "" Then
Switch @error
Case 1
$int_Error = 1
$int_TiempoEsperaAbrirVentana = 1000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", 1000)
Case 2, 3
$int_Error = 2
$int_TiempoEsperaAbrirVentana = 1000
Case -1, -2
$int_Error = 1
$int_TiempoEsperaAbrirVentana = 1000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", 1000)
Case Else
$int_Error = 3
$int_TiempoEsperaAbrirVentana = 1000
EndSwitch
EndIf
If $int_TiempoEsperaAbrirVentana < 100 Then
$int_Error = 1
$int_TiempoEsperaAbrirVentana = 1000
EndIf

$int_TiempoEsperaAbrirVentanaYDetectarTeclas = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas")
If $int_TiempoEsperaAbrirVentanaYDetectarTeclas == "" Then
Switch @error
Case 1
$int_Error = 1
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = 500
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", 500)
Case 2, 3
$int_Error = 2
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = 500
Case -1, -2
$int_Error = 1
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = 500
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", 500)
Case Else
$int_Error = 3
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = 500
EndSwitch
EndIf
If $int_TiempoEsperaAbrirVentanaYDetectarTeclas < 100 Then
$int_Error = 1
$int_TiempoEsperaAbrirVentanaYDetectarTeclas = 500
EndIf

$int_TiempoEsperaEjecutarGoldMine = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine")
If $int_TiempoEsperaEjecutarGoldMine == "" Then
Switch @error
Case 1
$int_Error = 1
$int_TiempoEsperaEjecutarGoldMine = 5000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", 5000)
Case 2, 3
$int_Error = 2
$int_TiempoEsperaEjecutarGoldMine = 5000
Case -1, -2
$int_Error = 1
$int_TiempoEsperaEjecutarGoldMine = 5000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", 5000)
Case Else
$int_Error = 3
$int_TiempoEsperaEjecutarGoldMine = 5000
EndSwitch
EndIf
If $int_TiempoEsperaEjecutarGoldMine < 100 Then
$int_Error = 1
$int_TiempoEsperaEjecutarGoldMine = 5000
EndIf

$int_TiempoEsperaFinalizarRegistro = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro")
If $int_TiempoEsperaFinalizarRegistro == "" Then
Switch @error
Case 1
$int_Error = 1
$int_TiempoEsperaFinalizarRegistro = 1000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", 1000)
Case 2, 3
$int_Error = 2
$int_TiempoEsperaFinalizarRegistro = 1000
Case -1, -2
$int_Error = 1
$int_TiempoEsperaFinalizarRegistro = 1000
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", 1000)
Case Else
$int_Error = 3
$int_TiempoEsperaFinalizarRegistro = 1000
EndSwitch
EndIf
If $int_TiempoEsperaFinalizarRegistro < 100 Then
$int_Error = 1
$int_TiempoEsperaFinalizarRegistro = 1000
EndIf

$str_CarpetaTexto = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto")
If $str_CarpetaTexto == "" Then
Switch @error
Case 1
$int_Error = 1
$str_CarpetaTexto = @HomeDrive & @HomePath
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", @HomeDrive & @HomePath)
Case 2, 3
$int_Error = 2
$str_CarpetaTexto = @HomeDrive & @HomePath
Case -1, -2
$int_Error = 1
$str_CarpetaTexto = @HomeDrive & @HomePath
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", @HomeDrive & @HomePath)
Case Else
$int_Error = 3
$str_CarpetaTexto = @HomeDrive & @HomePath
EndSwitch
EndIf

$str_CarpetaGoldMine = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine")
If $str_CarpetaGoldMine == "" Then
Switch @error
Case 1
$int_Error = 1
$str_CarpetaGoldMine = "Y:\GoldminePrg"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", "Y:\GoldminePrg")
Case 2, 3
$int_Error = 2
$str_CarpetaGoldMine = "Y:\GoldminePrg"
Case -1, -2
$int_Error = 1
$str_CarpetaGoldMine = "Y:\GoldminePrg"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", "Y:\GoldminePrg")
Case Else
$int_Error = 3
$str_CarpetaGoldMine = "Y:\GoldminePrg"
EndSwitch
EndIf

$str_GoldMine5User = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User")
If $str_GoldMine5User == "" Then
Switch @error
Case 1
$int_Error = 1
$str_GoldMine5User = "(Sin datos)"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", "(Sin datos)")
Case 2, 3
$int_Error = 2
$str_GoldMine5User = "(Sin datos)"
Case -1, -2
$int_Error = 1
$str_GoldMine5User = "(Sin datos)"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", "(Sin datos)")
Case Else
$int_Error = 3
$str_GoldMine5User = "(Sin datos)"
EndSwitch
EndIf

$str_GoldMine5Password = RegRead("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password")
If $str_GoldMine5Password == "" Then
Switch @error
Case 1
$int_Error = 1
$str_GoldMine5Password = "(Sin datos)"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", "(Sin datos)")
Case 2, 3
$int_Error = 2
$str_GoldMine5Password = "(Sin datos)"
Case -1, -2
$int_Error = 1
$str_GoldMine5Password = "(Sin datos)"
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", "(Sin datos)")
Case Else
$int_Error = 3
$str_GoldMine5Password = "(Sin datos)"
EndSwitch
EndIf

Switch $int_Error
Case 0, 1
If $str_GoldMine5User == "(Sin datos)" Then
$str_InputBox = InputBox( "Nombre de usuario de GoldMine", "Introduzca el nombre de usuario que se utilizará al intentar ejecutar automáticamente GoldMine:", "" , " M")
Switch @error
Case 0
$str_InputBox = _StringEncrypt(1, $str_InputBox, $str_GoldMine5Key, 1)
$str_GoldMine5User = $str_InputBox
$str_InputBox = ""
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", $str_GoldMine5User)
Case 1, 2
MsgBox(16, "LineToClip - Error", "El nombre de usuario de GoldMine no ha sido registrado. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Case 3, 4, 5
MsgBox(16, "LineToClip - Error", "Se ha producido un error al solicitar el nombre de usuario de GoldMine. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error desconocido al solicitar el nombre de usuario de GoldMine. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Return 1
EndSwitch
$str_InputBox = ""
EndIf
If $str_GoldMine5Password == "(Sin datos)" Then
$str_InputBox = InputBox( "Contraseña de GoldMine", "Introduzca la contraseña que se utilizará al intentar ejecutar automáticamente GoldMine (Introduzca un único espacio en blanco para indicar una contraseña vacía):", "" , "*M")
Switch @error
Case 0
$str_InputBox = _StringEncrypt(1, $str_InputBox, $str_GoldMine5Key, 1)
$str_GoldMine5Password = $str_InputBox
$str_InputBox = ""
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", $str_GoldMine5Password)
Case 1, 2
MsgBox(16, "LineToClip - Error", "La contraseña de GoldMine no ha sido registrada. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Case 3, 4, 5
MsgBox(16, "LineToClip - Error", "Se ha producido un error al solicitar la contraseña de GoldMine. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "Se ha producido un error desconocido al solicitar la contraseña de GoldMine. No será posible ejecutar el programa automáticamente si estuviera cerrado.", 300)
Return 1
EndSwitch
$str_InputBox = ""
EndIf
Return 0
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser cargada debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser cargada debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionTeclas_Escribir()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", $int_HotKeyCarpetas)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", $int_HotKeyCarpetas)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", $int_HotKeyCarpetas)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", $int_HotKeyURLs)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", $int_HotKeyURLs)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", $int_HotKeyURLs)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", $int_HotKeyBaseDatos)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", $int_HotKeyBaseDatos)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", $int_HotKeyBaseDatos)
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
;MsgBox(64, "LineToClip - Información", "La configuración de los métodos abreviados del teclado se ha guardado. La nueva configuración se aplicará a continuación.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionTeclas_Borrar()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", 0x0643)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", 0x0643)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyCarpetas", "REG_DWORD", 0x0643)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", 0x0655)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", 0x0655)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyURLs", "REG_DWORD", 0x0655)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", 0x0652)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", 0x0652)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "HotKeyBaseDatos", "REG_DWORD", 0x0652)
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
MsgBox(64, "LineToClip - Información", "La configuración de los métodos abreviados del teclado se ha restablecido a los valores predeterminados. La configuración predeterminada comenzará a utilizarse la próxima vez que inicie el programa.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionTeclas_Aplicar()
Local $int_ErrorHotKeyAssign = 0
Local $int_ErrorHotKeyDisable = 0
Local $int_ErrorHotKeyEnable = 0
Local $int_ErrorHotKeyRelease = 0

$int_ErrorHotKeyDisable = _HotKey_Disable()
If $int_ErrorHotKeyDisable <> 1 Then
; MsgBox(16, "LineToClip - Error", "No ha sido posible desactivar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no deben utilizarse hasta que no acabe la reconfiguración.", 300)
EndIf
$int_ErrorHotKeyRelease = _HotKey_Release()
If $int_ErrorHotKeyRelease <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible deshabilitar los métodos abreviados de teclado definidos previamente. Los métodos abreviados previos seguirán funcionando a la vez que los nuevos en esta sesión.", 300)
EndIf

$int_ErrorHotKeyAssign = _HotKey_Assign($int_HotKeyCarpetas, "LineToClipCarpetas_HotKey", BitOR($HK_FLAG_NOBLOCKHOTKEY, $HK_FLAG_NOOVERLAPCALL, $HK_FLAG_NOREPEAT), 0)
If $int_ErrorHotKeyAssign <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible registrar el método abreviado de teclado para leer un archivo de carpetas. El método abreviado ya está siendo utilizado por otro programa o ha ocurrido un error al intentar registrar el método abreviado.", 300)
EndIf
$int_ErrorHotKeyAssign = _HotKey_Assign($int_HotKeyURLs, "LineToClipURLs_HotKey", BitOR($HK_FLAG_NOBLOCKHOTKEY, $HK_FLAG_NOOVERLAPCALL, $HK_FLAG_NOREPEAT), 0)
If $int_ErrorHotKeyAssign <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible registrar el método abreviado de teclado para leer un archivo de direcciones URL. El método abreviado ya está siendo utilizado por otro programa o ha ocurrido un error al intentar registrar el método abreviado.", 300)
EndIf
$int_ErrorHotKeyAssign = _HotKey_Assign($int_HotKeyBaseDatos, "LineToClipBaseDatos_HotKey", BitOR($HK_FLAG_NOBLOCKHOTKEY, $HK_FLAG_NOOVERLAPCALL, $HK_FLAG_NOREPEAT), 0)
If $int_ErrorHotKeyAssign <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible registrar el método abreviado de teclado para leer un archivo de registros para bases de datos. El método abreviado ya está siendo utilizado por otro programa o ha ocurrido un error al intentar registrar el método abreviado.", 300)
EndIf

$int_ErrorHotKeyEnable = _HotKey_Enable()
If $int_ErrorHotKeyEnable <> 1 Then
MsgBox(16, "LineToClip - Error", "No ha sido posible activar el uso de métodos abreviados de teclado. Los métodos abreviados de teclado no estarán disponibles en esta sesión.", 300)
EndIf

Return 0

EndFunc

;===============================================================================

Func ConfiguracionTiempos_Escribir()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", $int_TiempoEsperaAbrirPagina)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", $int_TiempoEsperaAbrirPagina)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", $int_TiempoEsperaAbrirPagina)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", $int_TiempoEsperaAbrirVentana)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", $int_TiempoEsperaAbrirVentana)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", $int_TiempoEsperaAbrirVentana)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", $int_TiempoEsperaAbrirVentanaYDetectarTeclas)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", $int_TiempoEsperaAbrirVentanaYDetectarTeclas)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", $int_TiempoEsperaAbrirVentanaYDetectarTeclas)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", $int_TiempoEsperaEjecutarGoldMine)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", $int_TiempoEsperaEjecutarGoldMine)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", $int_TiempoEsperaEjecutarGoldMine)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", $int_TiempoEsperaFinalizarRegistro)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", $int_TiempoEsperaFinalizarRegistro)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", $int_TiempoEsperaFinalizarRegistro)
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
;MsgBox(64, "LineToClip - Información", "La configuración de los tiempos de espera se ha guardado. La nueva configuración se aplicará a continuación.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionTiempos_Borrar()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", 4000)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", 4000)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirPagina", "REG_DWORD", 4000)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", 1000)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", 1000)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentana", "REG_DWORD", 1000)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", 500)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", 500)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaAbrirVentanaYDetectarTeclas", "REG_DWORD", 500)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", 5000)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", 5000)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaEjecutarGoldMine", "REG_DWORD", 5000)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", 1000)
If $int_ResultadoRegWrite == "" Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", 1000)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "TiempoEsperaFinalizarRegistro", "REG_DWORD", 1000)
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
MsgBox(64, "LineToClip - Información", "La configuración de los tiempos de espera se ha restablecido a los valores predeterminados. La configuración predeterminada comenzará a utilizarse la próxima vez que inicie el programa.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionCarpetas_Escribir()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", $str_CarpetaTexto)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", $str_CarpetaTexto)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", $str_CarpetaTexto)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", $str_CarpetaGoldMine)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", $str_CarpetaGoldMine)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", $str_CarpetaGoldMine)
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
;MsgBox(64, "LineToClip - Información", "La configuración de carpetas se ha guardado. La nueva configuración se aplicará a continuación.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionCarpetas_Borrar()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", @HomeDrive & @HomePath)
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", @HomeDrive & @HomePath)
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaTexto", "REG_SZ", @HomeDrive & @HomePath)
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", "Y:\GoldminePrg")
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", "Y:\GoldminePrg")
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "CarpetaGoldMine", "REG_SZ", "Y:\GoldminePrg")
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
MsgBox(64, "LineToClip - Información", "La configuración de carpetas se ha restablecido a los valores predeterminados. La configuración predeterminada comenzará a utilizarse la próxima vez que inicie el programa.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func ConfiguracionUsuario_Borrar()
Local $int_Error = 0
Local $int_ResultadoRegWrite = 0

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", "(Sin datos)")
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", "(Sin datos)")
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5User", "REG_SZ", "(Sin datos)")
Case Else
$int_Error = 3
EndSwitch
EndIf

$int_ResultadoRegWrite = RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", "(Sin datos)")
If $int_ResultadoRegWrite <> 1 Then
Switch @error
Case 1
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip")
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", "(Sin datos)")
Case 2, 3
$int_Error = 2
Case -1, -2
$int_Error = 1
RegWrite("HKCU\SOFTWARE\IngenierosTenerife\LineToClip", "GoldMine5Password", "REG_SZ", "(Sin datos)")
Case Else
$int_Error = 3
EndSwitch
EndIf

Switch $int_Error
Case 0
MsgBox(64, "LineToClip - Información", "Los datos guardados de usuario y contraseña de GoldMine han sido eliminados. La próxima vez que inicie el programa se le solicitarán de nuevo dichos datos.", 300)
Return 0
Case 1
;MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser guardada. Corrija la configuración en el Registro.", 300)
Return 1
Case 2
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error de acceso al Registro.", 300)
Return 1
Case Else
MsgBox(16, "LineToClip - Error", "La configuración de una o más opciones del programa no ha podido ser escrita debido a un error desconocido.", 300)
Return 1
EndSwitch

EndFunc

;===============================================================================

Func LeerParametros()
Local $array_Archivo
Local $int_NumeroParametrosOK = 0
Local $int_ContenidoParametrosOK = 0

$array_Archivo = _WinAPI_GetOpenFileName("Seleccione el archivo a leer:", "Archivos de texto (*.txt)|Todos los archivos (*.*)", $str_CarpetaTexto, "", "", 1 , 0 , 0 , 0)
If $array_Archivo[2] = "" Then
$int_NumeroParametrosOK = 0
Else
$int_NumeroParametrosOK = 1
$str_Archivo = $array_Archivo[1] & "\" & $array_Archivo[2]
EndIf

If $int_NumeroParametrosOK = 1 Then
$int_ContenidoParametrosOK = FileExists($str_Archivo)
EndIf

If $int_NumeroParametrosOK <> 1 Then
MsgBox(16, "LineToClip - Error", "Se requiere que seleccione un archivo a procesar.", 300)
Return 1
EndIf
If $int_ContenidoParametrosOK <> 1 Then
MsgBox(16, "LineToClip - Error", "El archivo " & $str_Archivo & " no existe o no es accesible. Compruebe que el archivo cuyo nombre ha introducido existe y tiene permisos para leerlo.", 300)
Return 1
EndIf

$str_CarpetaTexto = $array_Archivo[1]
Return 0

EndFunc

;===============================================================================

Func DetectarApagado()
If ((@ExitMethod = 3) or (@ExitMethod = 4)) Then
TraySetState(2)
_HotKey_Disable()
_HotKey_Release()
DllClose($handle_shell32)
_WinAPI_SetErrorMode($int_ErrorModePrevio)
EndIf
EndFunc

;===============================================================================

--
Nice program indeed

Options: Reply | Quote | Up ^


#18 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-13 19:18 | IP: IP Logged

Anyway the fact is that an prior version don't give the warning and the last yes.

And older versions give the warning.

I hope the code may help you.

Best Regards

--
Nice program indeed

Options: Reply | Quote | Up ^


#19 Re: Fortunately I am not going mad with opened files

Posted by: pspad | Date: 2017-04-13 19:26 | IP: IP Logged

You could send your script to support mail as attachment. I will try to read it.

I already made some changes in PSPad to increase comparability

Options: Reply | Quote | Up ^


#20 Re: Fortunately I am not going mad with opened files

Posted by: Esgrimidor | Date: 2017-04-15 13:59 | IP: IP Logged

tongue sticking out smiley

Waiting for the next release.

Best Regards

smiling smiley

--
Nice program indeed

Options: Reply | Quote | Up ^


Goto Page: Previous1 2 3 Next





Editor PSPad - freeware editor, © 2001 - 2024 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR