public BindingReport BuildKeyboardBindingReport(BindingDescriptor bindingDescriptor) { var keyName = KeyNameHelper.GetNameFromScanCode(bindingDescriptor.Index + 1); if (keyName == null) { return(null); } return(new BindingReport { Title = keyName, Path = $"Key: {keyName}", Category = BindingCategory.Momentary, BindingDescriptor = bindingDescriptor, Blockable = _blockingEnabled }); }
public void EchoInput() { Console.WriteLine("Echo mode activated. Press Ctrl-C to exit."); Console.WriteLine("code\tstate\tname"); ManagedWrapper.SetFilter(context, ManagedWrapper.IsKeyboard, ManagedWrapper.Filter.All); try { while (true) { int device; var stroke = new ManagedWrapper.Stroke(); if (ManagedWrapper.Receive(context, device = ManagedWrapper.WaitWithTimeout(context, 5), ref stroke, 1) > 0) { if (ManagedWrapper.IsKeyboard(device) > 0) { int scancode = stroke.key.code; if ((stroke.key.state & 2) != 0) { scancode += 256; } Console.WriteLine($"{stroke.key.code}\t" + $"{(ManagedWrapper.KeyState) stroke.key.state}\t" + $"{KeyNameHelper.GetNameFromScanCode(scancode)}"); ManagedWrapper.Send(context, device, ref stroke, 1); } } } } catch (Exception e) { Console.Error.WriteLine(e); } }