KeyPress ToCarnacKeyPress(InterceptKeyEventArgs interceptKeyEventArgs) { var process = AssociatedProcessUtilities.GetAssociatedProcess(); if (process == null) { return(null); } // see if this process is one being filtered for Regex filterRegex; if (ShouldFilterProcess(out filterRegex) && !filterRegex.IsMatch(process.ProcessName)) { return(null); } var isLetter = interceptKeyEventArgs.IsLetter(); var inputs = ToInputs(isLetter, winKeyPressed, interceptKeyEventArgs).ToArray(); try { string processFileName = process.MainModule.FileName; ImageSource image = IconUtilities.GetProcessIconAsImageSource(processFileName); return(new KeyPress(new ProcessInfo(process.ProcessName, image), interceptKeyEventArgs, winKeyPressed, inputs)); } catch (Exception) { return(new KeyPress(new ProcessInfo(process.ProcessName), interceptKeyEventArgs, winKeyPressed, inputs));; } }
public KeyPress(ProcessInfo process, InterceptKeyEventArgs interceptKeyEventArgs, bool winkeyPressed, IEnumerable <string> input) : base(interceptKeyEventArgs.Key, winkeyPressed, interceptKeyEventArgs.ShiftPressed, interceptKeyEventArgs.AltPressed, interceptKeyEventArgs.ControlPressed) { Process = process; InterceptKeyEventArgs = interceptKeyEventArgs; Input = input; }
static IEnumerable <string> ToInputs(bool isLetter, bool isWinKeyPressed, InterceptKeyEventArgs interceptKeyEventArgs) { var controlPressed = interceptKeyEventArgs.ControlPressed; var altPressed = interceptKeyEventArgs.AltPressed; var shiftPressed = interceptKeyEventArgs.ShiftPressed; if (controlPressed) { yield return("Ctrl"); } if (altPressed) { yield return("Alt"); } if (isWinKeyPressed) { yield return("Win"); } if (controlPressed || altPressed) { //Treat as a shortcut, don't be too smart if (shiftPressed) { yield return("Shift"); } yield return(interceptKeyEventArgs.Key.SanitiseLower()); } else { yield return(interceptKeyEventArgs.Key.Sanitise()); } }
KeyPress ToCarnacKeyPress(InterceptKeyEventArgs interceptKeyEventArgs) { var process = AssociatedProcessUtilities.GetAssociatedProcess(); if (process == null) { return(null); } Debug.WriteLine("processName: " + process.ProcessName); var filterRegex = GetRegEx(); if (filterRegex != null && !filterRegex.IsMatch(process.ProcessName)) { return(null); } var isLetter = interceptKeyEventArgs.IsLetter(); var inputs = ToInputs(isLetter, winKeyPressed, interceptKeyEventArgs).ToArray(); try { string processFileName = process.MainModule.FileName; ImageSource image = IconUtilities.GetProcessIconAsImageSource(processFileName); return(new KeyPress(new ProcessInfo(process.ProcessName, image), interceptKeyEventArgs, winKeyPressed, inputs)); } catch (Exception) { return(new KeyPress(new ProcessInfo(process.ProcessName), interceptKeyEventArgs, winKeyPressed, inputs));; } }
private KeyPress ToCarnacKeyPress(InterceptKeyEventArgs interceptKeyEventArgs) { var process = GetAssociatedProcess(); var isLetter = interceptKeyEventArgs.Key >= Keys.A && interceptKeyEventArgs.Key <= Keys.Z; var inputs = ToInputs(isLetter, interceptKeyEventArgs); return(new KeyPress(process, interceptKeyEventArgs, winKeyPressed, inputs)); }
public override int GetHashCode() { unchecked { int hashCode = base.GetHashCode(); hashCode = (hashCode * 397) ^ (Process != null ? Process.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (InterceptKeyEventArgs != null ? InterceptKeyEventArgs.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Input != null ? Input.GetHashCode() : 0); return(hashCode); } }
private IEnumerable <string> ToInputs(bool isLetter, InterceptKeyEventArgs interceptKeyEventArgs) { var controlPressed = interceptKeyEventArgs.ControlPressed; var altPressed = interceptKeyEventArgs.AltPressed; var shiftPressed = interceptKeyEventArgs.ShiftPressed; if (controlPressed) { yield return("Ctrl"); } if (altPressed) { yield return("Alt"); } if (winKeyPressed) { yield return("Win"); } if (controlPressed || altPressed) { //Treat as a shortcut, don't be too smart if (shiftPressed) { yield return("Shift"); } yield return(interceptKeyEventArgs.Key.Sanitise()); } else { string input; var shiftModifiesInput = interceptKeyEventArgs.Key.SanitiseShift(out input); if (!isLetter && !shiftModifiesInput && shiftPressed) { yield return("Shift"); } if (interceptKeyEventArgs.ShiftPressed && shiftModifiesInput) { yield return(input); } else if (isLetter && !interceptKeyEventArgs.ShiftPressed) { yield return(interceptKeyEventArgs.Key.ToString().ToLower()); } else { yield return(interceptKeyEventArgs.Key.Sanitise()); } } }
private InterceptKeyEventArgs DetectWindowsKey(InterceptKeyEventArgs interceptKeyEventArgs) { if (interceptKeyEventArgs.Key == Keys.LWin || interceptKeyEventArgs.Key == Keys.RWin) { if (interceptKeyEventArgs.KeyDirection == KeyDirection.Up) { winKeyPressed = false; } else if (interceptKeyEventArgs.KeyDirection == KeyDirection.Down) { winKeyPressed = true; } } return(interceptKeyEventArgs); }
public bool CheckPasswordMode(InterceptKeyEventArgs key) { log.Enqueue(key); var sortedLog = log.ToList(); sortedLog.Sort(); var isMatch = sortedLog.SequenceEqual(PasswordKeyCombination, comparer); if (isMatch) { currentMode = !currentMode; this.log.Clear(); return(true); //this way when the sequence is entered again to EXIT password mode, the key password keycombo doesn't show on screen } return(currentMode); }
KeyPress ToCarnacKeyPress(InterceptKeyEventArgs interceptKeyEventArgs) { var process = GetAssociatedProcess(); var isLetter = interceptKeyEventArgs.IsLetter(); var inputs = ToInputs(isLetter, winKeyPressed, interceptKeyEventArgs).ToArray(); try { string processFileName = process.MainModule.FileName; ImageSource image = IconUtilities.GetProcessIconAsImageSource(processFileName); return(new KeyPress(new ProcessInfo(process.ProcessName, image), interceptKeyEventArgs, winKeyPressed, inputs)); } catch (System.Exception) { return(new KeyPress(new ProcessInfo(process.ProcessName), interceptKeyEventArgs, winKeyPressed, inputs));; } }
private bool IsModifierKeyPress(InterceptKeyEventArgs interceptKeyEventArgs) { return(modifierKeys.Contains(interceptKeyEventArgs.Key)); }