Autor Tema: ¿Qué es AutoHotkey?  (Leído 14799 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
¿Qué es AutoHotkey?
« en: Enero 16, 2015, 12:39:50 pm »
Advertisement
¿Qué es Autohotkey?




En algunos sitios he leído que:
Autohotkey es una herramienta para los amantes de los atajos de teclado.
Según la Wikipedia AutoHotkey es una utilidad para la creación de macros y automatización libre y de código abierto.

Según yo podríamos decir que en estos momentos es un lenguaje de programación script con todas las de la ley con el que no sólo puedes automatizar tareas, crear atajos de teclado sino también realizar casi cualquier tarea o programa que se te ocurra.
Como cualquier lenguaje tiene sus características, defectos y virtudes pero se pueden hacer cositas muy interesantes y de forma rápida…

Las ventajas que le veo son:
+ open source y en constante evolución
+ una comunidad muy muy activa que te ayuda de forma rápida con cualquier problema si es que no está resulto ya.
+ Se empieza a hacer cosas importantes rápidamente (si ya sabías programar) y otras más pequeñitas casi sin saber nada de programación.
+ Cualquier script que hagas se puede convertir en un fichero ejecutable.
+ Muy muy útil para acelerar y automatizar tareas.

Inconvenientes
+ Es sólo para Windows.
+ La forma de programar o sintaxis es algo “extraña”. Es sólo mi impresión.

Aquí tenéis los links de las dos webs/comunidades más importantes
www.autohotkey.com
http://ahkscript.org/
Ambas tienen un foro para consultas así como todo tipo de información y ayuda al lenguaje. (lamentablemente en inglés aunque podría ser una excusa para aprender)

Recomiendo la segunda web, de hecho el link de la versión más reciente v1.1.19.01 sólo está en esta segunda.

Lo que haremos primero es instalar el programa así que nos vamos al apartado Download por ejemplo de la web de ahkscript.org  y descargamos el programa (http://ahkscript.org/download/ahk-install.exe )
Luego como estamos en Windows ya sabéis el proceso normal de instalación de Siguiente, Siguiente, Siguiente hasta que ya no ponga ninguno más. Por favor, una recomendación muy simple e importante, leer lo que ponen las ventanas antes de dar a Siguiente (uff, que daño ha hecho este Bill al mundo ,jeje)

Bueno ya lo tenemos instalado y ahora qué? :-)

Una vez instalado podremos verlo en todos nuestros programas
 


Si ejecutamos AutoHotkey nos aparecería algo así



Al contestar que sí nos creará un script de prueba que contendría algo así

Código: [Seleccionar]
; IMPORTANT INFO ABOUT GETTING STARTED: Lines that start with a
; semicolon, such as this one, are comments.  They are not executed.

; This script has a special filename and path because it is automatically
; launched when you run the program directly.  Also, any text file whose
; name ends in .ahk is associated with the program, which means that it
; can be launched simply by double-clicking it.  You can have as many .ahk
; files as you want, located in any folder.  You can also run more than
; one .ahk file simultaneously and each will get its own tray icon.

; SAMPLE HOTKEYS: Below are two sample hotkeys.  The first is Win+Z and it
; launches a web site in the default browser.  The second is Control+Alt+N
; and it launches a new Notepad window (or activates an existing one).  To
; try out these hotkeys, run AutoHotkey again, which will load this file.

#z::Run [url=http://www.autohotkey.com]www.autohotkey.com[/url]

^!n::
IfWinExist Untitled - Notepad
WinActivate
else
Run Notepad
return


; Note: From now on whenever you run AutoHotkey directly, this script
; will be loaded.  So feel free to customize it to suit your needs.

; Please read the QUICK-START TUTORIAL near the top of the help file.
; It explains how to perform common automation tasks such as sending
; keystrokes and mouse clicks.  It also explains more about hotkeys.

De forma que a partir de ahora cada vez que ejecutásemos el ejecutable de Autohotkey.exe éste sería el script que se ejecutaría por defecto.
De hecho si volvemos a ejecutar Autohotkey.exe nos aparecerá una H en verde en el system tray, algo así
 


donde si hacemos click con el botón derecho del ratón podremos ver las opciones que se pueden ver en la foto anterior y entre ellas Edit This Script para poder editarlo.

Igualmente, clicando con el botón derecho del ratón en cualquier parte libre de nuestro Escritorio de Windows podremos generar de forma rápida. Nos aparecerá lo siguiente



donde el fichero a crear será del tipo AutoHotkey Script
Este tipo de fichero es sólo un fichero de texto pero con la extensión ahk. Esto significa dos cosas:
La primera es que podremos editarlo con cualquier editor de texto (no vale Word).
La segunda es que las extensiones ahk se han asignado a AutoHotkey de forma que al hacer doble click sobre ellas se ejecutarán nuestros scripts.

Llegados a este punto ya podemos escribir nuestros scripts. Si no eres programador estarás perdido pero te daría casi igual editar tus scripts con el notepad, notepad++, sublime, etc. Pero si eres programador querrás alguna especie de IDE que te haga la vida un poco más fácil.

En mi caso os recomiendo el programa SciTE4AutoHotkey el cual podéis encontrar en su web http://fincs.ahk4.net/scite4ahk/
En su web podéis ver información al respecto.
Hay otros como AHK Studio e incluso otras alternativas como ejecutar y compilar desde Sublime o Notepad++ pero me he acostumbrado a este y la verdad es que me resulta muy útil aunque seguro que no lo conozco ni sé usar ni al 30% de sus posibilidades.

Una vez instalado, si hacemos click con el botón derecho del ratón sobre un Script ahk (*.ahk) entre otras opciones nos aparecerá la de Edit Script de forma que si la seleccionamos se nos abrirá el programa SciTE4AutoHotkey pudiendo editar el script, ejecutarlo, compilarlo, etc.
Otra opción muy interesante que tiene es la de poder hacer debug (ya sabréis/averiguaréis que es eso si es que no lo sabéis …)

Vamos a editar el script inicial de ejemplo que el propio Autohotkey nos generaba.


Vamos a explicar brevemente lo que haría este script si lo ejecutamos. De hecho lo vamos a ejecutar bien haciendo doble click sobre fichero Autohotkey.ahk o si lo tenemos abierto ya con nuestro nuevo IDE pulsaremos sobre el botoncito arriba con forma de triangulo azul o botón de PLAY.
El script simplemente lo que hace es crear un par de hotkeys o atajos de teclado.(está explicado en el propio script pero en inglés)
Si pulsamos las teclas Win+Z se abrirá nuestro navegador determinado llevándonos a la web de www.autohotkey.com
Si pulsamos las teclas Control+Alt+N nos abrirá una nueva ventana de Notepad o si teníamos una abierta nos la activará dándole el foco siempre y cuando en el título de la ventana tenga Untitled – Notepad (cosa poco probable si tenemos nuestro Windows en español, así que probad a ver si os sale en caso de tenerlo en español).

Este script es algo muy simple pero lo mismo se os están ocurriendo ya cositas para hacer …
Por ejemplo, ¿qué programas sueles usar más? Lo mismo podrías crearte un script tonto en el que por ejemplo, si pulsamos:
Control+Alt+1 abre el Excel.
Control+Alt+2 abre el Word.
Control+Alt+3 abre el Google Chrome.
Control+Alt+h nos recuerda las teclas.

Venga ya tienes curro y si no sabes como hacerlo pues luego preguntas en el foro cómo hacerlo y os ayudaré.

Si te ha gustado lo que hace el script lo mismo se lo quieres pasar a un amigo pero resulta que tu amigo no quiere tener que instalar Autohotkey para poder ejecutarlo. No hay problemas, desde SciTE4AutoHotkey podemos compilar el fichero pulsando Control+F7 o bien desde el menú Tools



En la parte de abajo podemos ver lo siguiente



Donde como cosas interesantes cabe decir dos cosas.
La primera es que en la tura MisDocumentos nos habrá creado un fichero ejecutable que se llamará igual que nuestro script, en este caso, AutoHotkey.exe
La segunda es que en la ruta c:\Progam Files\AutoHotkey\Compiler está el programita Ahk2Exe.exe que es el encargado de generar el fichero exe.

A partir de aquí ya podemos hacer casi cualquier cosa que se nos ocurra…
¿Os atrevéis? :-)

Y hasta aquí … No, aún nos falta nuestro primer programa. Ese que en cualquier libro de programación es el primer programa.
Por supuesto estamos hablando del archiconocido hola mundo
Vamos a usar el script anterior y bien al principio o bien al final vamos a añadir la siguiente línea
Código: [Seleccionar]
::Hello::Hello World{!} This is my first script. ;Example comment
Ahora ejecutaremos de nuevo nuestro script. Si estaba ejecutándose, nos aparecerá algo parecido a esto.



Lo cual nos viene a decir que ya hay otra versión del script ejecutándose y que si queremos reemplazarla por la nueva a lo que contestaremos que Sí.

Ahora, ya tendremos el nuevo script ejecutándose y la nueva línea lo que hará es que cuando escribamos la palabra Hello y luego le demos a la tecla de espacio nos escribirá la frase de Hello World! This is my first script.

Sencillo, rápido y útil. Si normalmente redactáis imaginad cuantas abreviaturas podéis usar para agilizar vuestro curro. Por ejemplo, se puede usar incluso para recordar palabras en inglés, btw por cierto, hence por lo tanto, etc,etc …
En la nueva línea de código hay un par de cositas que se pueden comentar.
Hemos metido el signo de admiración ! entre llaves. Esto es porque el signo de admiración es usado por AutoHotkey como una tecla de modificación (Alt para ser mas exactos).
Si no queremos tener que pulsar el espacio tras haber escrito hello podemos escribir un asterisco * entre los dos puntos iniciales.

Así de fácil ha sido nuestro programita de Hola Mundo!!

Utilidad Windows Spy
Una utilidad que no hemos comentado es que al hacer click con el botón derecho del ratón sobre el icono H que aparece en el System tray cuando ejecutamos un script aparece la opción de Windows Spy. Al ejecutarla, aparecerá una ventanita en blanco que cuando pulsamos con el ratón en algún sitio quedaría algo parecido a la imagen que pondré a continuación.
Como podréis ver los datos van cambiando conforme vayáis moviendo el ratón y ofrece datos interesantes como el nombre de la ventana sobre la que os posicionéis o bien las coordenadas del puntero del ratón tanto de la ventana activa como del Escritorio.



Ahora mismo quizás no le veáis la utilidad pero puede serviros más adelante…

Click de ratón
Hemos visto como definir algún hotkey pero también podemos hacer cosas con el ratón.
Por ejemplo, haciendo uso de la utilidad anterior Windows Spy vamos a ver las coordenadas de un pdf que tengamos en nuestro Escritorio. En mi caso obtengo los valores 50,500.
Nuestro script lo que tendría que hacer es que cuando pulsemos la tecla F2 abra nuestro fichero pdf.
Para hacerlo, nos creamos un nuevo fichero ahk bien desde nuestro IDE o creándolo en el Escritorio con el botón derecho del ratón y luego sobre él seleccionamos la opción de Edit Script.
Nos crearemos el siguiente Script
Código: [Seleccionar]
F2::
Click 50,500,2
Return

Siempre y cuando tengamos todas las ventanas minimizadas, cuando presionemos la tecla F2 se hará un doble click de ratón en la posición que hemos definido.
Desde el IDE podemos ponernos encima de la palabra Click y pulsando F1 accederemos a una ayuda explicándonos la sintaxis del comando.

Ejecutar programas
Otra cosa que podemos hacer con Autohotkey es ejecutar programas.
Ya vimos algo en el primer ejemplo,

Código: [Seleccionar]
Run, notepad.exe, C:\My Documents, max  
La línea anterior lo que hace es abrir el notepad en una ventana maximizada.

Código: [Seleccionar]
Run, http://arcadespain.infoLa línea anterior lo que hace es abrir nuestro foro favorito en nuestro navegador determinado.

Código: [Seleccionar]
Run, mailto:empardopo@gmail.com?subject=Dudas AutoHotkey&body=Hola Mundo.La línea anterior abrirá nuestro programa gestor de correo determinado y de forma automática crea un nuevo mensaje rellenando los datos del destinatario, asunto y cuerpo del mensaje.

Expresiones regulares
Un ejemplo tonto que nos muestra una pequeña parte del uso de expresiones regulares con AutoHotkey podría ser el siguiente
Código: [Seleccionar]
#F2::
nick := "empardopo@gmail.com"
nick:= RegExReplace(nick, "@.*", "")
msgbox, el nick es %nick%
return

Sin tener mucha idea, creo que queda claro que el script anterior lo que hace es que cuando pulsemos la tecla Windows+F2 el programita lo que hará es mostrar en pantalla el mensaje de:
el nick es empardopo
La clave es en la función RegExReplace que lo que hace es coger el contenido de la variable nick y sustituye todos los caracteres a partir del signo @ incluyéndolo.

Un par de ejemplos interesantes
Vamos a realizar un pequeño ejemplo en el que seleccionemos un texto y al pulsar la tegla g de forma automática habrá nuestro navegador predeterminado y realice la búsqueda en google de dicha palabra seleccionada/marcada.

Código: [Seleccionar]
g::
Send ^c
Run http://www.google.com/search?q=%Clipboard%
Return

Si vemos el código por orden.
Cuando pulsamos la tecla g
Hace una pulsación de Control+C (es decir, manda al Clipboard la palabra seleccionada)
Lanza el navegador con la búsqueda en google.

Otro ejemplo interesante y parecido al anterior sería por ejemplo seleccionar una palabra o texto en inglés y que al pulsar la tecla i me habrá el navegador predeterminado llevándome a la traducción en línea de la misma. Igualmente, vamos a añadir que pulsando la tecla Escape se cierre nuestro script.
Código: [Seleccionar]
#I::
Send ^c
Run http://translate.google.es/#en|es|%Clipboard%
Return

Esc::
ExitApp

Creo que no es necesario comentar mucho más excepto las dos últimas líneas que lo único que hacen es que cuando pulsemos la tecla Escape nuestro script se cierre.

A partir de aquí, mi recomendación es echarle un vistazo a la ayuda de AutoHotkey accesible desde el propio programa SciTE4AutoHotkey desde el menú Help




así como visitar los foros de AutoHotkey.
By empardopo
« Última modificación: Enero 16, 2015, 12:41:39 pm por empardopo »



Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #1 en: Enero 16, 2015, 12:43:30 pm »
Links interesantes
The Best Time-Saving AutoHotkey Tricks You Should Be Using
Automate timed mouse clicks with ClickWhen


Scripts interesantes
Alt + Drag Windows --> se podrá mover una ventana pulsando la tecla Alt y haciendo click de ratón en cualquier punto de la misma
Spoiler: mostrar
Código: [Seleccionar]
; By How-To Geek
; Modified by Joe Esposito
; Origin: http://www.howtogeek.com/howto/windows-vista/get-the-linux-altwindow-drag-functionality-in-windows/
;
; This script modified from the original: http://www.autohotkey.com/docs/scripts/EasyWindowDrag.htm
; by The How-To Geek
; http://www.howtogeek.com

#If MouseIsNotOver("ahk_class Progman")
#If MouseIsNotOver("ahk_class WorkerW")

Alt & LButton::
CoordMode, Mouse  ; Switch to screen/absolute coordinates.
MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
WinGet, EWD_WinState, MinMax, ahk_id %EWD_MouseWin%
if EWD_WinState = 0  ; Only if the window isn't maximized
    SetTimer, EWD_WatchMouse, 10 ; Track the mouse as the user drags it.
return

EWD_WatchMouse:
GetKeyState, EWD_LButtonState, LButton, P
if EWD_LButtonState = U  ; Button has been released, so drag is complete.
{
    SetTimer, EWD_WatchMouse, off
    return
}
GetKeyState, EWD_EscapeState, Escape, P
if EWD_EscapeState = D  ; Escape has been pressed, so drag is cancelled.
{
    SetTimer, EWD_WatchMouse, off
    WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
    return
}
; Otherwise, reposition the window to match the change in mouse coordinates
; caused by the user having dragged the mouse:
CoordMode, Mouse
MouseGetPos, EWD_MouseX, EWD_MouseY
WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
SetWinDelay, -1   ; Makes the below move faster/smoother.
WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseX - EWD_MouseStartX, EWD_WinY + EWD_MouseY - EWD_MouseStartY
EWD_MouseStartX := EWD_MouseX  ; Update for the next timer-call to this subroutine.
EWD_MouseStartY := EWD_MouseY
return
#If
#If

MouseIsNotOver(WinTitle) {
    MouseGetPos,,, Win
    return !WinExist(WinTitle . " ahk_id " . Win)
}


Dimmer Screen --> oscurecedor de pantalla vía Tray icon
Spoiler: mostrar
Código: [Seleccionar]
;DimScreen.ahk
; Dim the screen via the tray icon
;Skrommel @2007

#SingleInstance,Force
#NoEnv
SetWinDelay,0

applicationname=DimScreen

Gosub,INIREAD
Gosub,MENU
Gosub,GUI

LOOP:
WinGet,id,Id,A
WinSet,AlwaysOnTop,On,ahk_id %guiid%
WinWaitNotActive,ahk_id %id%
IfWinNotExist,ahk_id %guiid%
  Gosub,GUI
Goto,LOOP


CHANGE:
Menu,Tray,UnCheck,% "&" dimming*10 "%"
If A_ThisMenuItem<>
  dimming:=A_ThisMenuItemPos-3
Menu,Tray,Check,% "&" dimming*10 "%"
WinSet,Transparent,% dimming*255/10,ahk_id %guiid%
Return


DECREASE:
Menu,Tray,UnCheck,% "&" dimming*10 "%"
dimming-=1
If dimming<0
  dimming=0
Menu,Tray,Check,% "&" dimming*10 "%"
WinSet,Transparent,% dimming*255/10,ahk_id %guiid%
Return


GUI:
Gui,+ToolWindow -Disabled -SysMenu -Caption +E0x20 +AlwaysOnTop
Gui,Color,000000
Gui,Show,% "X0 Y0 W" . A_ScreenWidth "H" . A_ScreenHeight,%applicationname% Screen
Gui,+LastFound
WinGet,guiid,Id,A
Gosub,CHANGE
Return


MENU:
Menu,Tray,DeleteAll
Menu,Tray,NoStandard
Menu,Tray,Add,%applicationname%,ABOUT
Menu,Tray,Default,%applicationname%
Menu,Tray,Add,
Loop,10
  Menu,Tray,Add,% "&" A_Index*10-10 "%",CHANGE
Menu,Tray,Add,
Menu,Tray,Add,&Settings...,SETTINGS
Menu,Tray,Add,&About...,ABOUT
Menu,Tray,Add,&Exit,EXIT
Menu,Tray,Tip,%applicationname%
Return


INCREASE:
Menu,Tray,UnCheck,% "&" dimming*10 "%"
dimming+=1
If dimming>9
  dimming=9
Menu,Tray,Check,% "&" dimming*10 "%"
WinSet,Transparent,% dimming*255/10,ahk_id %guiid%
Return


SETTINGS:
Hotkey,%hotkey1%,Off
Hotkey,%hotkey2%,Off
Gui,2:Destroy
Gui,2:Add,GroupBox,xm y+20 w175,&Startup dimming (0-90 `%)
Gui,2:Add,Edit,xp+10 yp+20 w155 vvdimming,% dimming*10
Gui,2:Add,GroupBox,xm y+20 w175 h70,&Increase dimming hotkey
Gui,2:Add,Hotkey,xp+10 yp+20 w155 vvhotkey1,% hotkey1
Gui,2:Add,Text,,Current: %hotkey1%
Gui,2:Add,GroupBox,xm y+20 w175 h70,&Decrease dimming hotkey
Gui,2:Add,Hotkey,xp+10 yp+20 w155 vvhotkey2,% hotkey2
Gui,2:Add,Text,,Current: %hotkey2%
Gui,2:Add,Button,xm y+20 w75 Default gSETTINGSOK,&OK
Gui,2:Add,Button,x+5 yp w75 gSETTINGSCANCEL,&CANCEL
Gui,2:Show,,%applicationname% Settings
Return


SETTINGSOK:
Gui,2:Submit
vdimming:=Floor(vdimming/10)
If (vdimming>=0 And vdimming<=9)
{
  IniWrite,%vdimming%,%applicationname%.ini,Settings,dimming
}
If vhotkey1<>
{
  hotkey1:=vhotkey1
  IniWrite,%hotkey1%,%applicationname%.ini,Settings,hotkey1
}
If vhotkey2<>
{
  hotkey2:=vhotkey2
  IniWrite,%hotkey2%,%applicationname%.ini,Settings,hotkey2
}

SETTINGSCANCEL:
Gui,2:Destroy
Hotkey,%hotkey1%,INCREASE
Hotkey,%hotkey2%,DECREASE
Return


INIREAD:
IniRead,dimming,%applicationname%.ini,Settings,dimming
If dimming=Error
  dimming=5
IniRead,hotkey1,%applicationname%.ini,Settings,hotkey1
If hotkey1=Error
  hotkey1=^+
IniRead,hotkey2,%applicationname%.ini,Settings,hotkey2
If hotkey2=Error
  hotkey2=^-
Hotkey,%hotkey1%,INCREASE
Hotkey,%hotkey2%,DECREASE
Return


ABOUT:
Gui,2:Destroy
Gui,2:Margin,20,20
Gui,2:Add,Picture,xm Icon1,%applicationname%.exe
Gui,2:Font,Bold
Gui,2:Add,Text,x+10 yp+10,%applicationname% v1.1
Gui,2:Font
Gui,2:Add,Text,y+10,Dim the whole screen.
Gui,2:Add,Text,xp y+5,- Change the brightness by selecting a `% in the tray menu.
Gui,2:Add,Text,xp y+5,- Or use the hotkeys Ctrl++ and Ctrl+-.
Gui,2:Add,Text,xp y+5,- Change hotkeys using Settings in the tray menu.
Gui,2:Add,Text,xp y+5,- Doesn't work properly with video windows.

Gui,2:Add,Picture,xm y+20 Icon2,%applicationname%.exe
Gui,2:Font,Bold
Gui,2:Add,Text,x+10 yp+10,1 Hour Software by Skrommel
Gui,2:Font
Gui,2:Add,Text,y+10,For more tools, information and donations, please visit
Gui,2:Font,CBlue Underline
Gui,2:Add,Text,y+5 G1HOURSOFTWARE,www.1HourSoftware.com
Gui,2:Font

Gui,2:Add,Picture,xm y+20 Icon7,%applicationname%.exe
Gui,2:Font,Bold
Gui,2:Add,Text,x+10 yp+10,DonationCoder
Gui,2:Font
Gui,2:Add,Text,y+10,Please support the contributors at
Gui,2:Font,CBlue Underline
Gui,2:Add,Text,y+5 GDONATIONCODER,www.DonationCoder.com
Gui,2:Font

Gui,2:Add,Picture,xm y+20 Icon6,%applicationname%.exe
Gui,2:Font,Bold
Gui,2:Add,Text,x+10 yp+10,AutoHotkey
Gui,2:Font
Gui,2:Add,Text,y+10,This tool was made using the powerful
Gui,2:Font,CBlue Underline
Gui,2:Add,Text,y+5 GAUTOHOTKEY,www.AutoHotkey.com
Gui,2:Font

Gui,2:Show,,%applicationname% - About

hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt") ;IDC_HAND
OnMessage(0x200,"WM_MOUSEMOVE")
Return

1HOURSOFTWARE:
Run,http://www.1hoursoftware.com,,UseErrorLevel
Return

DONATIONCODER:
Run,http://www.donationcoder.com,,UseErrorLevel
Return

AUTOHOTKEY:
Run,http://www.autohotkey.com,,UseErrorLevel
Return

ABOUTOK:
Gui,2:Destroy
OnMessage(0x200,"")
DllCall("DestroyCursor","Uint",hCurs)
Return

WM_MOUSEMOVE(wParam,lParam)
{
  Global hCurs
  MouseGetPos,,,,ctrl
  If ctrl in Static11,Static15,Static19
    DllCall("SetCursor","UInt",hCurs)
  Return
}


EXIT:
ExitApp


Binary Clock --> Reloj binario para tu windows

Docker --> programa para esconder nuestras ventanas abiertas.

WinInfoTool --> muestra en pantalla información sobre la ventana activa.

Funciones
Sonar dos sonidos al mismo tiempo
« Última modificación: Noviembre 01, 2016, 12:56:00 pm por empardopo »

Desconectado machiminax

  • VIP
  • *
  • Mensajes: 1849
  • Gracias 112
  • Ciudad: indefinida
  • Pais: desconocido
Re:¿Qué es AutoHotkey?
« Respuesta #2 en: Enero 16, 2015, 11:21:30 pm »
Empardopo gracias por el tuto mañana compruebo a fondo el generador de artworks.
Y me pongo con la guia que has preparado que tiene una pinta genial.
Estaria genial que explicaras un poquillo el tema de añadirle una gui o el .ini , jejejeje...
Es que lo que has explicado esta muy bien para empezar pero y si queremos ir un pasito mas adelante... contentill contentill contentill
Un saludo.

PD: Disculpa de nuevo por no haber mirado antes el programa de artworks , no me he olvidado , solo que me fue imposible mirarlo con calma.
« Última modificación: Enero 16, 2015, 11:28:37 pm por machiminax »

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #3 en: Enero 17, 2015, 09:51:47 am »
Machiminax, es solo el principio pero one question, has programado antes?
Es que la cosa varía si sabes programar en otro lenguaje o no, jeje.
Yo programo en otros lenguajes y hay cosas como lo de los créditos que he hecho un copypaste de un script que encontré sin estudiar 100% como lo hace pero como más o menos programo pues sé cómo modificarlo a mi gusto.
Mi consejo es que te pongas un proyecto, escribes en un papel lo que quieres hacer antes y luego intentes hacerlo. Conforme te vayas parando, pides ayuda. Eso es lo que yo hago y supongo que la mayoría. Bueno, antes gogleo porque suele ser más rápida la respuesta, jeje.

Lo siguiente tocaremos un poco los gui y los ini, algo primordial.
Saludos

Desconectado Kenzo

  • Moderador global
  • *
  • Mensajes: 1094
  • Gracias 65
  • Ciudad: Alcalá de Henares (Madrid)
  • Pais: España
Re:¿Qué es AutoHotkey?
« Respuesta #4 en: Enero 17, 2015, 09:54:05 am »
Gran trabajo y muy buena información, esto se guarda :D

Desconectado shouman

  • VIP
  • *
  • Mensajes: 302
  • Gracias 82
  • Ciudad: murcia
  • Pais: españa
Re:¿Qué es AutoHotkey?
« Respuesta #5 en: Enero 17, 2015, 12:49:26 pm »
Muy buen tuto compi,esto es para sentarse y estudiarlo.Yo no tengo ni idea de programacion pero seguro que econ este tuto podria hacer mis pinitos!Saludos!!

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #6 en: Enero 18, 2015, 12:01:15 am »
Me alegro si os sirve. Tengo un proyectito en mente para una segunda parte del tuto o continuación...

Desconectado arquillos

  • VIP
  • *
  • Mensajes: 1666
  • Gracias 87
  • Jugando a Mazinger Z
    • Retro-Android
  • Ciudad: Madrid
  • Pais: España (si queda algo)
Re:¿Qué es AutoHotkey?
« Respuesta #7 en: Enero 19, 2015, 08:41:46 am »
Ante todo muchas gracias!
Gran explicación....y ahora voy a sembrar las dudas :)...

Sobre este tipo de herramientas de automatización tenemos dos contendientes: AutoHotkey y AutoIT.
Los dos en principio valen para lo mismo y tienen un gran soporte y comunidad detrás.
Eso sí, siempre me ha parecido que AHK está más especialmente dedicado a los atajos de teclado y automatización básica de GUIs y además tiene una sintaxis bastante mala. No se si se pueden crear aplicaciones "grandes" con el.
Yo uso en el curro AutoIT y va de miedo, quizás un poco mas complicado al usar los atajos de teclado pero para automatizar tareas va de miedo.

Esto sólo es para abrir horizontes que siempre viene bien y de nuevo gracias a Empardopo por el excelente tuto!
NO compres en comercios Chinos. Fomenta los españoles!

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #8 en: Enero 19, 2015, 09:05:14 am »
Gracias Arquillos por la info.
Sinceramente creo recordar que el primer programa que me instalé fue AutoIt (hace ya muchos años) pero no recuerdo en qué momento ni porqué motivo pasé a usar Autohotkey.
Lo que sí me da la impresión es que hay más información sobre Autohotkey así como foros de ayuda (es sólo mi impresión y lo mismo estoy equivocado).

Para el tema de recreativas y tal no sé cual será mejor pero supongo que todo el que use HyperSpin se habrá dado cuenta de que se usa Autohotkey.

Saludos

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #9 en: Abril 10, 2015, 07:50:10 pm »
Añado Binary Clock o reloj binario a la recopilación de Scripts interesantes.

Binary Clock --> Reloj binario para tu windows

Puedes descargar el fuente en el link correspondiente.

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #10 en: Abril 20, 2015, 04:17:37 pm »
Os voy a dejar un link a un programilla/utilidad llamada Docker la cual permite mandar ventanas de windows a cualquiera de las 4 lados de nuestro monitor (arriba, abajo, izquierda o derecha).
En el link tenéis el fuente de ahk así como el ejecutable.


Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #11 en: Abril 20, 2015, 04:27:36 pm »
Otra pequeña utilidad más llamada WinInfoTool la cual suministra información sobre la ventana que tengamos activa así como la posición donde tengamos el puntero del ratón.

En el link se incluye ejecutable y el source AHK.

Saludos

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #12 en: Noviembre 01, 2016, 12:52:45 pm »
He encontrado un pequeño problema con Autohotkey y es que dos sonidos al mismo tiempo no pueden sonar; si pongo una música de background resulta que cuando lanzo otro sonido el de la música de fondo se para...

Usando esta función:
Código: [Seleccionar]
PlaySound( ByRef Sound ) {
 Return DllCall( "winmm.dll\PlaySound" ( A_IsUnicode ? "W" : "A" ), UInt,&Sound, UInt,0, UInt, ((SND_MEMORY:=0x4)|(SND_ASYNC := 0x1)) )
}

donde anteriormente he cargado en Sound el fichero que quiero cargar

Código: [Seleccionar]
FileRead, Sound1, *c %rbackgroundSound%
PlaySound( Sound1 )

resulta que podría escuchar una música de fondo y cuando lanzara otro sonido se escucharía bien sin cortar el de fondo pero el problema es que esta función que he colocado sólo funciona con ficheros wavs; supongo que será una limitación de la dll usada.

Otra solución
He encontrado esta otra función que resuelve el problema y podríamos usar ficheros mp3 sin problemas...

Código: [Seleccionar]
playAudio(aF){
   global
   fNm++
   cPF := a_temp "\pF_" fNm ".ahk"
      sbCmd =
      (
         cSnd := "%aF%"
         soundPlay, `% cSnd, 1
      )
   fileAppend, % sbCmd, % cPF
   if fileExist(cPF)
      run % cPF,,, pfPID
   detectHiddenWindows, On
   winWaitClose, % "ahk_id " winExist("ahk_class #43")
      fileDelete, % a_temp "\pF_*.ahk"
   return
}

El problema que tendremos ahora es que para que funcione tenemos que tener instalado Autohotkey en el ordeandor ya que lo que hace es lanzar un segundo script para que suene el segundo sonido que le hayamos pasado como parámetro; para que deje de sonar tendríamos que cerrar el nuevo script que lanza la función.

/*

Flags for playing the sound. The following values are defined:

SND_APPLICATION := 0x80
The sound is played using an application-specific association.

SND_ALIAS := 0x10000
The pszSound parameter is a system-event alias in the registry or the WIN.INI file. Do not use with either SND_FILENAME or SND_RESOURCE.

SND_ALIAS_ID := 0x110000
The pszSound parameter is a predefined sound identifier.

SND_ASYNC := 0x1
The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.

SND_FILENAME := 0x20000
The pszSound parameter is a filename.

SND_LOOP := 0x8
The sound plays repeatedly until PlaySound is called again with the pszSound parameter set to NULL. You must also specify the SND_ASYNC flag to indicate an asynchronous sound event.

SND_MEMORY := 0x4
A sound event’s file is loaded in RAM. The parameter specified by pszSound must point to an image of a sound in memory.

SND_NODEFAULT := 0x2
No default sound event is used. If the sound cannot be found, PlaySound returns silently without playing the default sound.

SND_NOSTOP := 0x10
The specified sound event will yield to another sound event that is already playing. If a sound cannot be played because the resource needed to generate that sound is busy playing another sound, the function immediately returns FALSE without playing the requested sound.
If this flag is not specified, PlaySound attempts to stop the currently playing sound so that the device can be used to play the new sound.

SND_NOWAIT := 0x2000
If the driver is busy, return immediately without playing the sound.

SND_PURGE := 0x40
Sounds are to be stopped for the calling task. If pszSound is not NULL, all instances of the specified sound are stopped. If pszSound is NULL, all sounds that are playing on behalf of the calling task are stopped.
You must also specify the instance handle to stop SND_RESOURCE events.

SND_RESOURCE := 0x40004
The pszSound parameter is a resource identifier; hmod must identify the instance that contains the resource.

SND_SYNC := 0x0
Synchronous playback of a sound event. PlaySound returns after the sound event completes.

*/
« Última modificación: Noviembre 02, 2016, 09:15:23 am por empardopo »

Desconectado gucaza

  • VIP
  • *
  • Mensajes: 603
  • Gracias 8
  • Ciudad: Tacna
Re:¿Qué es AutoHotkey?
« Respuesta #13 en: Noviembre 01, 2016, 04:52:29 pm »
Hola Empardopo, tal vez me puedas ayudar, con comandos de autohockey, no se mucho sobre esto lo que he creado lo hecho con un asistente, mi objetivo esta a medias, lo que deseo hacer es:

1. Mediante el frontend mala, lanza/ejecuta mi autohockey para cargar el emulador NeoRage el cual ejecuta la rom correspondiente, hasta aquí lo he resuelto, pero tal vez lo puedas pulir/corregir/ o darme alguna pista?
Citar
Run, "NeoRAGEx 5.0.exe"
WinWait, NeoRAGEx 5.0,            -->este comando exactamente no espera la ventana/programa se puede arreglar?
IfWinNotActive, NeoRAGEx 5.0, , WinActivate, NeoRAGEx 5.0,
WinWaitActive, NeoRAGEx 5.0,
sleep, 500       -->como no espera al programa he añadido un tiempo de espera
MouseClick, left,  199,  144 , 15
MouseClick, left,  47,  200, 4


2. Pero quisiera añadir al autohockey si es posible (creo que si) que al presionar la tecla escape cierre el Neorage

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 21782
  • Gracias 761
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
Re:¿Qué es AutoHotkey?
« Respuesta #14 en: Noviembre 01, 2016, 07:33:23 pm »
Hola Empardopo, tal vez me puedas ayudar, con comandos de autohockey, no se mucho sobre esto lo que he creado lo hecho con un asistente, mi objetivo esta a medias, lo que deseo hacer es:

1. Mediante el frontend mala, lanza/ejecuta mi autohockey para cargar el emulador NeoRage el cual ejecuta la rom correspondiente, hasta aquí lo he resuelto, pero tal vez lo puedas pulir/corregir/ o darme alguna pista?
Citar
Run, "NeoRAGEx 5.0.exe"
WinWait, NeoRAGEx 5.0,            -->este comando exactamente no espera la ventana/programa se puede arreglar?
IfWinNotActive, NeoRAGEx 5.0, , WinActivate, NeoRAGEx 5.0,
WinWaitActive, NeoRAGEx 5.0,
sleep, 500       -->como no espera al programa he añadido un tiempo de espera
MouseClick, left,  199,  144 , 15
MouseClick, left,  47,  200, 4


2. Pero quisiera añadir al autohockey si es posible (creo que si) que al presionar la tecla escape cierre el Neorage
Compi, podrías / deberías abrir un post nuevo con tu problema...
Ya puestos no entiendo lo que quieres hacer ni tampoco el motivo para que desde mala lanzes un autohotkey...

Por cierto ,la solución más rápida es que uses ALLINONEFYC para cerrar tu emulador con la tecla que quieras suponiendo que el emulador no lo permita.

Saludos

Enviado desde mi SM-N910F mediante Tapatalk


 


* Reto 321 - Joust 2 - Survival of the Fittest  Autor: Zael Foro: Competiciones y concursos 16/06/2024 (11:37)
* M.A.L.A147+Mame0.153 64/32 bits +35 Roms + Layout Tron_MameV1   Autor: Zael Foro: MALA 16/06/2024 (11:32)
* ¿A qué estáis jugando ahora mismo?  Autor: Zael Foro: Offtopic 16/06/2024 (11:28)
* ZX Touch o el timo de la estampita  Autor: sirdrak Foro: Retroconsolas 12/06/2024 (15:00)
* Lección de vida  Autor: Zael Foro: Offtopic 10/06/2024 (13:13)
* MPAGD (Multi Platform Arcade Game Designer)  Autor: empardopo Foro: Creación de juegos 09/06/2024 (14:37)
* El megapost del ZX Spectrum  Autor: empardopo Foro: Offtopic 09/06/2024 (14:25)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: empardopo Foro: Offtopic 09/06/2024 (14:24)
* Ayuda con configuración emulador PXSX2  Autor: empardopo Foro: Emuladores 09/06/2024 (14:20)
* Amiga Games + 1.9.7  Autor: empardopo Foro: Emuladores 09/06/2024 (14:12)
* Salón Recreativo #55 (27-04-2024 / 26-05-2024)  Autor: hoz3 Foro: Salón Recreativo FaseBonus 04/06/2024 (05:52)
* ASUS, ¿me engaña, me tima o se rie de mí?  Autor: empardopo Foro: Offtopic 03/06/2024 (20:09)
* [PS4] PS4 5.05 - Should I Stay or Shoud I Go?  Autor: empardopo Foro: Consolas actuales 03/06/2024 (20:07)
* Retro Portable Maker ArcadeSpain (RPMA)  Autor: empardopo Foro: Otros programas 03/06/2024 (20:03)
* Volante PXN V9 - ¿Ganga... o tongo?  Autor: Zael Foro: Reviews tecnológicas 01/06/2024 (12:08)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 30/05/2024 (19:35)
* Reto 320 - Wizard of wor  Autor: empardopo Foro: Competiciones y concursos 28/05/2024 (20:58)
* GB-Operator (Emulador GB/GBC/GBA en PC)  Autor: Zael Foro: Retroconsolas 28/05/2024 (20:12)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 24/05/2024 (10:21)
* Música y artistas aptos para nuestra jukebox  Autor: empardopo Foro: Offtopic 22/05/2024 (20:02)
* [Recomendacion] Series para ver  Autor: empardopo Foro: Offtopic 20/05/2024 (20:21)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: joselopez Foro: Offtopic 16/05/2024 (00:56)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: sirdrak Foro: Noticias de emuladores 13/05/2024 (00:53)
* La inteligencia artificial ha llegado a la música  Autor: Zael Foro: Offtopic 12/05/2024 (20:24)
* Info sobre MARP  Autor: empardopo Foro: Records y wolfmame 12/05/2024 (20:09)
* Stop the express  Autor: empardopo Foro: ZX Spectrum 12/05/2024 (20:05)

Reto 320: Wizard of Wor
Buscaunchollo.click