private void OnKeyActionFurtherProcessing2(uint vkcode, uint nScanCode, bool isDown, byte[] kbstate) { var result = ((Keys)vkcode).ToString(); // Another Fix beside the deadkeys workarround, needed because ToAscii doesnt work when STRG is pressed if (IsPrintableKey(vkcode) && !IsCtrlPressed()) { var szKey = new StringBuilder(2); var nConvOld = (uint)NativeMethods.ToAscii(vkcode, nScanCode, kbstate, szKey, 0); _deadKeyOver = false; if (nConvOld > 0 && szKey.Length > 0) { result = szKey.ToString().Substring(0, 1); } } if (isDown) { StringDown?.Invoke(result, new StringDownEventArgs(result.Length == 1, result, vkcode)); } else { StringUp?.Invoke(result, new StringDownEventArgs(result.Length == 1, result, vkcode)); } }
private void _keyProcessing_StringUp(object sender, StringDownEventArgs e) { StringUp?.Invoke(this, e); }