AutoHotkey: Difference between revisions

From Omnia
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 8: Line 8:
  Quick Reference | AutoHotkey v2
  Quick Reference | AutoHotkey v2
  https://www.autohotkey.com/docs/v2/index.htm
  https://www.autohotkey.com/docs/v2/index.htm
== Version 2 Header ==
<pre>
#Requires AutoHotkey v2.0
...
</pre>
== Variables ==
Assignment:
MyNumber = 123
MyString = This is a literal string.
CopyOfVar = %Var%  ; With the = operator, percent signs are required to retrieve a variable's contents.
Expressions:
MyNumber := 123
MyString := "This is a literal string."
CopyOfVar := Var  ; Unlike its counterpart in the previous section, percent signs are not used with the := operator.
Erase:
MyVar =
MyVar := ""
ref: https://www.autohotkey.com/docs/v1/Variables.htm
== For Loop ==
<pre>
colours := Object("red", 0xFF0000, "blue", 0x0000FF, "green", 0x00FF00)
; The above expression could be used directly in place of "colours" below:
for k, v in colours
    s .= k "=" v "`n"
MsgBox % s
</pre>
ref: https://www.autohotkey.com/docs/v1/lib/For.htm
== While Loop ==
<pre>
while some_condition
{
...
}
</pre>
ref: https://www.autohotkey.com/docs/v1/lib/While.htm
== Functions ==
<pre>
Add(x, y)
{
    return x + y  ; "Return" expects an expression.
}
</pre>
ref: https://www.autohotkey.com/docs/v1/Functions.htm


== Let's Game It Out reference ==
== Let's Game It Out reference ==
Line 61: Line 122:
== Send message ==
== Send message ==


Send key presses: https://www.autohotkey.com/docs/v1/lib/Send.htm
Send key presses: https://www.autohotkey.com/docs/v1/lib/Send.htm | https://www.autohotkey.com/docs/v2/lib/Send.htm


On Ctrl+F12:
On Ctrl+F12:
Line 70: Line 131:




SendInput is faster then send:
SendInput is faster then send: https://www.autohotkey.com/docs/v2/lib/Send.htm
<pre>
<pre>
^k:: ; Press Ctrl+K
^k:: ; Press Ctrl+K
SendInput, This is a very long string of text...
SendInput This is a very long string of text...
return
return
</pre?
</pre>
 
<pre>
SendInput {raw}This has ! special characters!
</pre>


== Clipboard Manipulation ==
== Clipboard Manipulation ==
Line 87: Line 152:
</pre>
</pre>


== keywords ==
== Arrow Keys ==
 
<pre>
r::
Send {Right down}
Sleep 500
Send {Right up}
return
</pre>
 
<pre>
Send {Down down}  ; Presses the down arrow key down
Sleep 1000        ; Keeps it held down for 1 second
Send {Down up}    ; Releases the down arrow key
return
</pre>


== keywords ==
== keywords ==

Latest revision as of 06:51, 30 May 2026

AutoHotkey

AutoHotkey
https://www.autohotkey.com/

Tutorial

Quick Reference | AutoHotkey v2
https://www.autohotkey.com/docs/v2/index.htm

Version 2 Header

#Requires AutoHotkey v2.0

...

Variables

Assignment:

MyNumber = 123
MyString = This is a literal string.
CopyOfVar = %Var%  ; With the = operator, percent signs are required to retrieve a variable's contents.

Expressions:

MyNumber := 123
MyString := "This is a literal string."
CopyOfVar := Var  ; Unlike its counterpart in the previous section, percent signs are not used with the := operator.

Erase:

MyVar =
MyVar := ""

ref: https://www.autohotkey.com/docs/v1/Variables.htm


For Loop

colours := Object("red", 0xFF0000, "blue", 0x0000FF, "green", 0x00FF00)
; The above expression could be used directly in place of "colours" below:
for k, v in colours
    s .= k "=" v "`n"
MsgBox % s

ref: https://www.autohotkey.com/docs/v1/lib/For.htm

While Loop

while some_condition
{
...
}

ref: https://www.autohotkey.com/docs/v1/lib/While.htm

Functions

Add(x, y)
{
    return x + y   ; "Return" expects an expression.
}

ref: https://www.autohotkey.com/docs/v1/Functions.htm

Let's Game It Out reference

I Broke This Game So Hard, Its Whole Universe Gave Up - Outpath
https://www.youtube.com/watch?v=0FKaIiRhUME

HitMeWithThatClickyClickScriptyScript.ahk :

f12::

Start:

MouseClick
sleep, 1

Goto, Start

The "sleep, 1" is 1 millisecond = 1,000 timess/second

^f12::

Start:

MouseClick
sleep, 1

KeyIsDown := GetKeyState("F12")

if KeyIsDown
	return

Goto, Start

; ^f12::
; Run, notepad.exe
; return

auto mouse press with escape key exit

^J::
LOOP {
  MOUSECLICK, LEFT
  SLEEP, 100
}

Esc::ExitApp

Send message

Send key presses: https://www.autohotkey.com/docs/v1/lib/Send.htm | https://www.autohotkey.com/docs/v2/lib/Send.htm

On Ctrl+F12:

^f12::
Send {h}{e}{l}{l}{o}


SendInput is faster then send: https://www.autohotkey.com/docs/v2/lib/Send.htm

^k:: ; Press Ctrl+K
SendInput This is a very long string of text...
return
SendInput {raw}This has ! special characters!

Clipboard Manipulation

^j:: ; Press Ctrl+J to trigger
clipboard := "Your large block of text goes here."
ClipWait ; Wait for the clipboard to contain data
Send ^v ; Paste the text
return

Arrow Keys

r::
Send {Right down}
Sleep 500
Send {Right up}
return
Send {Down down}  ; Presses the down arrow key down
Sleep 1000        ; Keeps it held down for 1 second
Send {Down up}    ; Releases the down arrow key
return

keywords