title: How to achieve the lowest possible level of access to keys?
body: <p>I'm using AHK for a while and I love it! But today I noticed something weird.</p>
  
  <p>I tend to use scripts to automate things like task switching, audio mute/unmute on applications, etc.
  I started playing the game Call of Duty: Black Ops 4 and my hotkeys were acting weird. They did what they should, but with a few "extra" actions I didn't want. The problem was, that AHK couldn't block access to any keys which was bound to an action in the settings of the game.</p>
  
  <p>Step by step I tried to fix this and narrow down what the specific problem could be. I tried things like:</p>
  
  <pre><code>F1::
    Send, f
  Return
  
  F1::Return
  
  VK70::Return
  
  SC03B::Return
  </code></pre>
  
  <p>None of these worked. Yes, the first one wrote the character "f" when the chat was open, but all of them did the action what it should for the game.</p>
  
  <p>And another example of this control of the game is the Caps Lock key, which can't be used in some situations, because it toggles the Map in-game. And to prevent confusion when using the chat, the developers disabled it when it can be used as a map toggle. Because of this, I can't bind any AHK hotkey to Caps Lock, because it won't fire when it is blocked by the game.</p>
  
  <p>I'd like to ask if I could "catch" these keys earlier somehow, before it reaches the applications? How could I implement my script lower, than it is by default?
  <br><br><br>
  Thanks in advance!</p>