private void hook() { bool s = true; bool l1 = true; bool l2 = true; bool winkey = false; Stroke stroke = new Stroke(); InterceptionDriver.SetFilter(context, InterceptionDriver.IsMouse, (Int32)MouseFilterMode.All); InterceptionDriver.SetFilter(context, InterceptionDriver.IsKeyboard, (Int32)KeyboardFilterMode.All); while (InterceptionDriver.Receive(context, device = InterceptionDriver.Wait(context), ref stroke, 1) > 0) { s = true; if (InterceptionDriver.IsMouse(device) > 0) { if (l1) { l1 = false; devm = device; } user_out = false; if (_lock) { s = false; } if (OnMousePressed != null) { var args = new MousePressedEventArgs() { X = stroke.Mouse.X, Y = stroke.Mouse.Y, State = stroke.Mouse.State, Rolling = stroke.Mouse.Rolling }; OnMousePressed(this, args); if (args.Handled) { continue; } stroke.Mouse.X = args.X; stroke.Mouse.Y = args.Y; stroke.Mouse.State = args.State; stroke.Mouse.Rolling = args.Rolling; } } if (InterceptionDriver.IsKeyboard(device) > 0) { if (l2) { l2 = false; devk = device; } if (_lock) { s = false; } user_out = false; if ((stroke.Key.Code == Keys.WindowsKeyLeft) | (stroke.Key.Code == Keys.WindowsKeyRight)) { if (stroke.Key.State == KeyState.E0) { winkey = true; } else { winkey = false; } } if (stroke.Key.Code == Keys.NumpadMinus) { try { Thread blk = new Thread(block); blk.IsBackground = true; blk.Start(); s = false; } catch { System.Windows.MessageBox.Show("Error"); } } if (stroke.Key.Code == Keys.Q) { if (winkey) { try { Thread unblk = new Thread(unblock); unblk.IsBackground = true; unblk.Start(); } catch { System.Windows.MessageBox.Show("Error"); } } } if (OnKeyPressed != null) { var args = new KeyPressedEventArgs() { Key = stroke.Key.Code, State = stroke.Key.State }; OnKeyPressed(this, args); if (args.Handled) { continue; } stroke.Key.Code = args.Key; stroke.Key.State = args.State; } } if (s) { InterceptionDriver.Send(context, device, ref stroke, 1); } } Stop(); }
private void hook() { bool s = true; bool l1 = true; bool l2 = true; Stroke stroke = new Stroke(); InterceptionDriver.SetFilter(context, InterceptionDriver.IsKeyboard, (Int32)KeyboardFilterMode.All); InterceptionDriver.SetFilter(context, InterceptionDriver.IsMouse, (Int32)MouseFilterMode.All); //keyboard: device=3 //mouse: device=11 while (InterceptionDriver.Receive(context, device = InterceptionDriver.Wait(context), ref stroke, 1) > 0) { s = true; if (InterceptionDriver.IsMouse(device) > 0) { if (l1) { l1 = false; devm = device; Dispatcher.Invoke(() => { label1.Content = device; }); } if (OnMousePressed != null) { var args = new MousePressedEventArgs() { X = stroke.Mouse.X, Y = stroke.Mouse.Y, State = stroke.Mouse.State, Rolling = stroke.Mouse.Rolling }; OnMousePressed(this, args); if (args.Handled) { continue; } stroke.Mouse.X = args.X; stroke.Mouse.Y = args.Y; stroke.Mouse.State = args.State; stroke.Mouse.Rolling = args.Rolling; } } if (InterceptionDriver.IsKeyboard(device) > 0) { if (l2) { l2 = false; devk = device; Dispatcher.Invoke(() => { label2.Content = device; }); } if (stroke.Key.Code == Keys.Tilde) { if (work) { if (bss) { if (stroke.Key.State == KeyState.Down) { if (mss == false) { m = false; mss = true; new Thread(macross).Start(); } } else if (stroke.Key.State == KeyState.Up) { if (mss == true) { mss = false; } } s = false; } } } if (stroke.Key.Code == Keys.One) { if (work) { if (bs1) { if (stroke.Key.State == KeyState.Down) { m = false; } } } } if (stroke.Key.Code == Keys.Z) { if (work) { if (bs2) { if (stroke.Key.State == KeyState.Down) { m = false; } } } } if (stroke.Key.Code == Keys.Three) { if (work) { if (bs3) { if (stroke.Key.State == KeyState.Down) { m = false; } } } } if (stroke.Key.Code == Keys.Four) { if (work) { if (bs4) { if (stroke.Key.State == KeyState.Down) { m = false; } } } } if (stroke.Key.Code == Keys.R) { if (work) { if (bpw) { if (stroke.Key.State == KeyState.Up) { if (m == false) { m = true; if (mt) { new Thread(macro_text).Start(); } else { new Thread(macro).Start(); } } else { m = false; } } } else { if (stroke.Key.State == KeyState.Down) { if (m == false) { m = true; if (mt) { new Thread(macro_text).Start(); } else { new Thread(macro).Start(); } } } else if (stroke.Key.State == KeyState.Up) { if (m == true) { m = false; } } } s = false; } } if (stroke.Key.Code == Keys.T) { if (work) { if (bt) { if (stroke.Key.State == KeyState.Down) { if (m2 == false) { m = false; m2 = true; new Thread(macro2).Start(); } } else if (stroke.Key.State == KeyState.Up) { if (m2 == true) { m2 = false; } } s = false; } } } if (stroke.Key.Code == Keys.Insert) { if (stroke.Key.State == KeyState.E0) { if (pause_exit) { Stop(); } new Thread(timer).Start(); new Thread(ch_work).Start(); s = false; } } if (stroke.Key.Code == Keys.Enter) { if (stroke.Key.State == KeyState.Down) { if (work == true) { new Thread(ch_work).Start(); m = false; } } } if (OnKeyPressed != null) { var args = new KeyPressedEventArgs() { Key = stroke.Key.Code, State = stroke.Key.State }; OnKeyPressed(this, args); if (args.Handled) { continue; } stroke.Key.Code = args.Key; stroke.Key.State = args.State; } } if (s) { InterceptionDriver.Send(context, device, ref stroke, 1); } } Stop(); }
public static int FilterMouse(int device) { return(InterceptionDriver.IsMouse(device) + (device != 13 ? 0 : 1)); }