[UPDATED 2020-08-03: using python 3.9]
Without a doubt, Autohotkey is the best program for hotkeys under Windows. It contains an easy script language for binding hotkeys and shortcuts to any possible key combination.
Autokotkey allows to write emails or code in any editor faster than ever before. Simple tasks can be automated and much more. And the best part: it is open source.
On the other hand, python is a powerful script language with dozens of extra packages. From simple file task to complex machine learning everything is available free of charge.
Of course, people tried to combine these two tools before. The most common way is to use ctypes for binding the python DLL into autohotkey.
But there is a much more convenient and more flexible solution: the windows COM interface This allows you to have a complete python interpreter embedded in autohotkey
With only 1 line of code Python is ready to be used in autohotkey
The following example shows a message box with the installed python version
; File name: python_test.ahk ; Create python interpreter com object py := ComObjCreate("Python.Interpreter") ; Get version and display a message box py.Exec("import sys") r := py.Eval("sys.version") msgbox % "Python Version " + r
Here is a simple step by step guide on how to setup (for x32 and x64)
1.) Install pywin32 by using pip
pip3 install pywin32
2.) Register the python COM object
You should see this output:
Registering COM server...
3.) Set the windows path to your python COM DLL
Path to add:
There are two ways of doing this:
- opening the system properties (WinKey + Pause)
- selecting the “Advanced” tab
- click the “Environment Variables” button
- then adding or selecting the PATH variable
or (more convenient) in a terminal window:
4.) Congratulation you are done
4 thoughts on “Embedding Python 3.9 in autohotkey by using Windows COM”
A working guide 🙂 🙂
By the way: I am the author of this forum post: https://www.autohotkey.com/boards/viewtopic.php?f=76&t=73508
How did you know that you have to set the path?!
Followed the instructions. Can’t edit the path. What is wrong
Check if you have admin rights 😉