evilC 6 years ago
commit 4e5dc009b4

@ -26,7 +26,10 @@ Initialize the library
Interception := AutoHotInterception_Init() Interception := AutoHotInterception_Init()
``` ```
## Context mode ## Modes
There are two modes of operation for AHI, currently each script can only use one of them.
### Context mode
Context mode is so named as it takes advantage of AutoHotkey's [Context Sensitive Hotkeys](https://autohotkey.com/docs/Hotkeys.htm#Context). Context mode is so named as it takes advantage of AutoHotkey's [Context Sensitive Hotkeys](https://autohotkey.com/docs/Hotkeys.htm#Context).
In AHK, you can wrap your hotkeys in a block like so: In AHK, you can wrap your hotkeys in a block like so:
``` ```
@ -37,14 +40,14 @@ F1::Msgbox You Pressed F1
This hotkey would only fire if the `myVariable` was 1. This hotkey would only fire if the `myVariable` was 1.
In context mode, you subscribe to a keyboard, and any time events for that keyboard are just about to happen, then AHI fires your callback, and you set this variable to `1` the hotkey is enabled. After your hotkey fires, AHI fires the callback again and the variable gets set back to `0`. In context mode, you subscribe to a keyboard, and any time events for that keyboard are just about to happen, then AHI fires your callback, and you set this variable to `1` the hotkey is enabled. After your hotkey fires, AHI fires the callback again and the variable gets set back to `0`.
### Step 1 #### Step 1
Register your callback with AHI Register your callback with AHI
``` ```
VID := 0x04F2, PID := 0x0112 VID := 0x04F2, PID := 0x0112
Interception.SetContextCallback(VID, PID, Func("SetKb1Context")) Interception.SetContextCallback(VID, PID, Func("SetKb1Context"))
``` ```
### Step 2 #### Step 2
Create your callback function, and set the context variable to the value of `state` Create your callback function, and set the context variable to the value of `state`
``` ```
SetKb1Context(state){ SetKb1Context(state){
@ -54,7 +57,7 @@ SetKb1Context(state){
} }
``` ```
### Step 3 #### Step 3
Create your hotkeys, wrapped in an `#if` block for that context variable Create your hotkeys, wrapped in an `#if` block for that context variable
``` ```
#if isKeyboard1Active #if isKeyboard1Active
@ -69,8 +72,8 @@ Create your hotkeys, wrapped in an `#if` block for that context variable
#if #if
``` ```
## Subscription mode ### Subscription mode
In Subscription mode, you bypass AHK's hotkey system completely, and Interception notifies you og key events via callbacks. In Subscription mode, you bypass AHK's hotkey system completely, and Interception notifies you of key events via callbacks.
Subscribe to a key on a specific keyboard Subscribe to a key on a specific keyboard
`SubscribeKey(<scanCode>, <block>, <callback>, <VID>, <PID>` `SubscribeKey(<scanCode>, <block>, <callback>, <VID>, <PID>`

Loading…
Cancel
Save