Skip to main content

A Python wrapper for AHK

Project description


A Python wrapper around AHK.

Build version pyversion Coverage


pip install ahk


from ahk import AHK
ahk = AHK()
ahk.mouse_move(x=100, y=100, speed=10)  # blocks until mouse finishes moving
print(ahk.mouse_position)  #  (100, 100)


non-blocking modes

You can also opt for a non-blocking interface, so you can do other stuff while AHK scripts run.

import time
from ahk import AHK
ahk = AHK()
ahk.mouse_position = (200, 200)  # moves the mouse instantly to the position
start = time.time()
ahk.mouse_move(x=100, y=100, speed=30, blocking=False)
while True:  #  report mouse position while it moves
    t = round(time.time() - start, 4)
    position = ahk.mouse_position
    print(t, position)
    if position == (100, 100):

You should see an output something like

0.032 (187, 187)
0.094 (173, 173)
0.137 (164, 164)
0.788 (100, 103)
0.831 (100, 101)
0.873 (100, 100)


You can do stuff with windows, too.

Getting windows

from ahk import AHK
from ahk.window import Window
ahk = AHK()
win = ahk.active_window  # get the active window
win = ahk.win_get(title='Untitled - Notepad')  # by title
win = list(  # list of all windows
win = Window(ahk, ahk_id='0xabc123')  # by ahk_id
win = Window.from_mouse_position(ahk)  # a window under the mouse cursor
win = Window.from_pid('20366')  # by process ID

Working with windows

win.move(x=200, y=300, width=500, height=800)
win.activate()  # give the window focus
win.disable()  # make the window non-interactable
win.enable()  # enable it again
win.to_top()  # moves window on top of other windows
win.always_on_top = True  # make the windows always on top

for window in
#  some more attributes
print(window.rect)  # (x, y, width, height)
print(  # ahk_id


You can enable debug logging, which will output script text before execution, and some other potentially useful debugging information.

import logging

Non-Python Dependencies

Just the AHK executable. It's expected to be on PATH by default.

Alternatively you can set an AHK_PATH environment variable.

Or, provide it inline

from ahk import AHK
ahk = AHK(executable_path='C:\\ProgramFiles\\AutoHotkey\\AutoHotkey.exe')


Right now this is just an exploration of an idea. It may not even be a particularly good idea.

There's still a bit to be done in the way of implementation.

The vision is to provide additional interfaces that implement the most important parts of the AHK API in a Pythonic way.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ahk, version 0.4.1
Filename, size File type Python version Upload date Hashes
Filename, size ahk-0.4.1-py3-none-any.whl (16.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ahk-0.4.1.tar.gz (12.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page