public TextAnalytics() { this.dispatcher = Dispatcher.CurrentDispatcher; hookedLowLevelKeyboardProc = (MIMKeys.LowLevelKeyboardProc)LowLevelKeyboardProc; hookId = MIMKeys.SetHook(hookedLowLevelKeyboardProc); hookedKeyboardCallbackAsync = new KeyboardCallbackAsync(KBListener_KeyboardCallbackAsync); KBHelpers.TextAnalyticsGlobalProperties(); }
private IntPtr LowLevelKeyboardProc(int nCode, UIntPtr wParam, IntPtr lParam) { string chars = ""; if (nCode >= 0) { if (wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_KEYDOWN || wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_KEYUP || wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_SYSKEYDOWN || wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_SYSKEYUP) { chars = MIMKeys.VKCodeToString((uint)Marshal.ReadInt32(lParam), (wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_KEYDOWN || wParam.ToUInt32() == (int)MIMKeys.KeyEvent.WM_SYSKEYDOWN)); hookedKeyboardCallbackAsync.BeginInvoke((MIMKeys.KeyEvent)wParam.ToUInt32(), Marshal.ReadInt32(lParam), chars, null, null); } } return(MIMKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }
public void Dispose() { MIMKeys.UnhookWindowsHookEx(hookId); }