diff --git a/README.md b/README.md index ba10b39..3361b9f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,9 @@ AutoHotInterception (AHI) allows you to execute AutoHotkey code in response to events from a *specific* keyboard or mouse, whilst (optionally) blocking the native functionality (i.e. stopping Windows from seeing that keyboard or mouse event). In other words, you can use a key on a second (or third, or fourth...) keyboard to trigger AHK code, and that key will not be seen by applications. You can use the *same key* on multiple keyboards for individual actions. -Keyboard Keys, Mouse Buttons and Mouse movement (Both Relative and Absolute modes) are supported. +For example, you could have 3 keyboards connected, and on the 1st (Main keyboard), no changes are applied, but on keyboard #2, when you press `F1`, it replaces it with `a`, and on keyboard #3, when you press `F1`, it replaces it with `b`. +Keyboard Keys, Mouse Buttons and Mouse movement (Both Relative and Absolute modes) are supported. +Both AHK v1 and AHK v2 are supported. AHI uses the Interception driver by Francisco Lopez @@ -60,16 +62,26 @@ There is nothing I can do to fix this issue, it is a limitation of the Intercept # Setup -1. Download and install the [Interception Driver](http://www.oblita.com/interception) +## Install the Intereception driver +Download and install the [Interception Driver](http://www.oblita.com/interception) Note that you **must** run `install-interception.exe` at an admin command prompt (**Not double-click it**) - once you do so, it will instruct you to execute `install-interception.exe /install` to actually perform the install. Here is a GIF showing the process: ![](https://github.com/evilC/AutoHotInterception/blob/master/InterceptionInstall.gif) -2. Download an AHI release from the [releases page](https://github.com/evilC/AutoHotInterception/releases) and extract it to a folder. + +## Build your AutoHotInterception folder +1. Download an AHI release from the [releases page](https://github.com/evilC/AutoHotInterception/releases) and extract it to a folder. DO NOT use the "Clone or Download" link on the main page. -This is the folder where (at least initially) you will be running scripts from. -It contains `AHK v1` and `AHK v2` folders - use the one appropriate for your AHK version. Inside each is a number of sample `.ahk` scripts and a `lib` folder, which contains all the AHI libraries. -3. In the Interception installer zip, there is a `library` folder containing `x86` and `x64` folders. -Copy both of these folders into the AHI `lib` folder that you created in step (3) - the folder structure should end up looking like: +2. From the AHI release zip, extract EITHER the `AHK v1` folder **OR** the `AHK v2` folder to somewhere on your disk. +This is the "working folder" where (at least initially) you will be running scripts from. +It contains a number of sample `.ahk` scripts and a `lib` folder. +3. From the AHI release zip, extract `AutoHotInterception.dll` from the `Common\lib` folder and place it into `lib` in your "working folder" +4. In the Interception installer zip, there is a `library` folder containing `x86` and `x64` folders. +Copy both of these folders into the `lib` folder in your "working" folder. + +Example for AHK v1 - the "working folder" is on the left, top right is the AutoHotInterception zip, bottom right is the Interception zip. +![](https://github.com/evilC/AutoHotInterception/blob/master/FolderSetup.gif) + +The folder structure should end up looking like: ``` AHI Root Folder Monitor.ahk @@ -91,6 +103,7 @@ This can be done manually by right clicking the DLLs, selecting Properties, and 5. Edit one of the example remapping scripts, replacing the VID/PID(s) with that of your device (Use the Monitor app to find it) and run it to make sure it works. 6. (Optional) The contents of the `lib` folder can actually be placed in one of the AutoHotkey lib folders (eg `My Documents\AutoHotkey\lib` - make it if it does not exist), and the `#include` lines of the sample scripts changed to `#include `, to enable your AHI scripts to be in any folder, without each needing it's own copy of the library files. + ------ # Usage