title: Multiple keyboards and low-level hooks
body: <p>I have a system where I have multiple keyboards and really need to know which keyboard the key stroke is coming from.  To explain the set up:</p>
  
  <ol>
  <li>I have a normal PC and USB keyboard</li>
  <li>I have an external VGA screen with some hard-keys</li>
  <li>The hard keys are mapped as a standard USB keyboard, sending a limited number of key-codes (F1, F2, Return, + and -)</li>
  </ol>
  
  <p>I have a low-level hook (in C# but actually calling upon Win32 functionality) which is able to deal with the input even when my application is not focused.</p>
  
  <p>The problem is that when using the normal keyboard, some of the mapped key-codes at picked up by the application being driven on the external screen.  One of the key-presses sent by the external screen and used for confirmation is VK_RETURN.  Unless I can identify the "device" and filter upon it, the user could be performing actions and confirming them on a screen their not even looking at.</p>
  
  <p>How do I know which keyboard was responsible for the key-press?</p>