#NoTrayIcon #Include #Include #Include #Include #Include #Include #Include #Include #Include #Include #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) 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 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") 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) 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) $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 ;===============================================================================