buenas noches a todos, recién descubro el mundo de AutoHotkey y me gustaría hacer un autocorrector de palabras, es decir, ir juntando muchas palabras que suelo escribir incorréctamente; para hacer esto he visto que se hace mediante scritps como este: "::atiempo::a tiempo", se me ocurre hacer un banco o lista de palabras enorme, podría hacer un script que al seleccionar la palabra mal escrita, me la copie y almacene en un .txt, y de esta manera ir juntando muchas palabras con errores ortográficos, para luego escribirlas corréctamente como indica el script : "::atiempo::a tiempo".
¿alguna manera de seleccionar la palabra, almacene, abra el bloc de notas y pegue las palabras que vaya seleccionando ?
gracias a todos por su tiempo y atención.
Autocorrector
Moderator: Flipeador
Re: Autocorrector
Curioso el asunto.
Ese texto lo copias y pegas en un bloc de notas. Lo guardas asegurándote de poner extensión ahk en lugar de txt (te aconsejo el notepad++ mejor que el de windows)
Tendrás que cambiar la ruta y nombre que obviamente yo lo he puesto en D:\lepes\Downloads\ahk\corrector.ahk
El funcionamiento actual es:
- Ejecutas el script con doble clic (lo puedes tener el menú de arranque de windows y que se cargue solo siempre)
- estás escribiendo en word y escribes una palabra mal, por ejemplo escribes "qeu" pues ahí mismo en word, modificas el texto a "qeu::que" y seleccionas todo eso
- Presiona la tecla de función F1 (eso hace que el texto seleccionado se corte al portapapeles, abra el fichero corrector.ahk y añada esa palabra al diccionario. Por último recarga el script).
- Listo,ya funciona la próxima vez que lo escribas.
- Al usar Ctrl+x (cortar), el texto ha desaparecido de word, vuelve a escribirlo mal y al pulsar espacio, Autohotkey te lo corregirá
La clave del asunto está en el texto que se añade al fichero: `n::%clipboard%
`n significa que añada un salto de línea y salto de carro... vamos, como si tú le das a intro para una linea nueva
:: pone los puntos iniciales, porque en el texto que resaltaste no estaban.
%clipboard% pega el texto que estaba en el portapapeles, el que tú seleccionaste.
Quizás te suene extraño eso de que un script se modifique a sí mismo y se ordene recargar, pero bueno, es la magia de Autohotkey
Si tienes alguna duda y puedo echarte un cable, avisa.
Saludos!
Code: Select all
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
F2::Reload
F1::
{
Send, ^x
FileAppend,`n::%clipboard%, D:\lepes\Downloads\ahk\corrector.ahk
Reload
}
::atiempo::a tiempo
Tendrás que cambiar la ruta y nombre que obviamente yo lo he puesto en D:\lepes\Downloads\ahk\corrector.ahk
El funcionamiento actual es:
- Ejecutas el script con doble clic (lo puedes tener el menú de arranque de windows y que se cargue solo siempre)
- estás escribiendo en word y escribes una palabra mal, por ejemplo escribes "qeu" pues ahí mismo en word, modificas el texto a "qeu::que" y seleccionas todo eso
- Presiona la tecla de función F1 (eso hace que el texto seleccionado se corte al portapapeles, abra el fichero corrector.ahk y añada esa palabra al diccionario. Por último recarga el script).
- Listo,ya funciona la próxima vez que lo escribas.
- Al usar Ctrl+x (cortar), el texto ha desaparecido de word, vuelve a escribirlo mal y al pulsar espacio, Autohotkey te lo corregirá
La clave del asunto está en el texto que se añade al fichero: `n::%clipboard%
`n significa que añada un salto de línea y salto de carro... vamos, como si tú le das a intro para una linea nueva
:: pone los puntos iniciales, porque en el texto que resaltaste no estaban.
%clipboard% pega el texto que estaba en el portapapeles, el que tú seleccionaste.
Quizás te suene extraño eso de que un script se modifique a sí mismo y se ordene recargar, pero bueno, es la magia de Autohotkey
Si tienes alguna duda y puedo echarte un cable, avisa.
Saludos!
Re: Autocorrector
Me parece una idea muy interesante, y la solución de Lepes es muy buena.
Me permito desarrollarla un poco:
Me permito desarrollarla un poco:
Code: Select all
/*
La lista podría estar en un documento aparte
en este ejemplo se puso en el mismo directorio que el Script
Se condiciona a una cierta ventana activa, pero podrían ser varias
Se pide la corrección para grabar ya todo el comando
Si el usuario cancela el diálogo, no se modifica la lista
*/
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 1 ; el título de la ventana debe comenzar con
#Include Lista.txt
#If WinActive("TextPad - ") ; acá poner el título de la ventana de trabajo
F10::Reload ; estos dos podrían no ser necesarios despues del debug
F11::ExitApp ; o podrían ponerse antes del #If Winactive
F9::
{ SoundBeep, 750, 200
Antiguo := Clipboard ; guardar el clipboard para restablecerlo al final del ciclo
SendInput, +^{Left} ; copiar la palabra mal escrita
Sleep, 60 ; tiempo ajustable, si no copia aumentarlo
SendInput, ^x
InputBox, Corrección ; pedir la corrección
, Corrector
, % "¿cual es la corrección de " . Clipboard . "?"
If !ErrorLevel ; si no se canceló
{ FileAppend, % "::" . Clipboard . "::" Corrección . "`n"
, Lista.txt
, UTF-8
SoundBeep, 900, 300
SendInput, %Corrección%
Clipboard := Antiguo
Sleep, 60
Reload
} Else
SoundBeep, 600, 300
}
Re: Autocorrector
versión 0.2
la lista estaá en un documento aparte
Se pide la corrección para grabar todo el comando
Si el usuario cancela el diálogo o no hace cambios,
la lista estaá en un documento aparte
Se pide la corrección para grabar todo el comando
Si el usuario cancela el diálogo o no hace cambios,
- no se modifica la lista
- no se restablece el clipboard antiguo
- se pude usar Ctrl-V para volver a poner la palabra
- se modifica la lista
- se pega la corrección en el texto
- se restablece el clipboard antiguo
Code: Select all
; ver 0.2
#NoEnv
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
StringCaseSense, On
SetTitleMatchMode, 1 ; el título de la ventana debe comenzar con
#Include Lista.txt
#If WinActive("TextPad - ") ; acá poner el título de la ventana de trabajo
F10::Reload ; estos dos podrían no ser necesarios despues del debug
F11::ExitApp ; o podrían ponerse antes del #If Winactive
F9::
{ SoundBeep, 750, 200
Antiguo := Clipboard ; guardar el clipboard para restablecerlo al final del ciclo
SendInput, +^{Left} ; copiar la palabra mal escrita
Sleep, 40 ; tiempo ajustable, si no copia aumentarlo
SendInput, ^x
Sleep, 40
Prompt := "¿cual es la corrección de " . Clipboard . "?"
InputBox, Corrección ; OutputVar ; pedir la corrección
, Corrector ; Title
, % Prompt ; Prompt
, , , 100 ; hide, Width, Height
, , , Locale ; X, Y, Locale
, , % Clipboard ; TimeOut, Default
If !ErrorLevel and Corrección != Clipboard ; si no se canceló y no son iguales
{ FileAppend, % "::" . Clipboard . "::" Corrección . "`n"
, Lista.txt
, UTF-8
SoundBeep, 900, 300
SendInput, %Corrección%
Clipboard := Antiguo ; podría pasarse al final antes del último } para restablecer el antiguo clipboard en ambos casos
Sleep, 40
Reload
} Else
SoundBeep, 600, 300
}
Re: Autocorrector
Hola, me incorporo al canal español.
Ya existe un guión sólido para la ayuda al escribir: https://www.autohotkey.com/board/topic/49517-ahk-11typingaid-v2220-word-autocompletion-utility/. Incluso tiene dos diccionarios (que es el trabajo más engorroso) de palabras españolas.
Ya existe un guión sólido para la ayuda al escribir: https://www.autohotkey.com/board/topic/49517-ahk-11typingaid-v2220-word-autocompletion-utility/. Incluso tiene dos diccionarios (que es el trabajo más engorroso) de palabras españolas.
Who is online
Users browsing this forum: No registered users and 27 guests