private void TraiterKey(bool isDown, System.Windows.Forms.KeyEventArgs e) { // Validité if (!_activateHook) { return; } if (e.KeyCode != System.Windows.Forms.Keys.W && e.KeyCode != System.Windows.Forms.Keys.A && e.KeyCode != System.Windows.Forms.Keys.S && e.KeyCode != System.Windows.Forms.Keys.D) { return; } // Assigner les variables if (e.KeyCode == System.Windows.Forms.Keys.W) { _isDownW = isDown; } if (e.KeyCode == System.Windows.Forms.Keys.A) { _isDownA = isDown; } if (e.KeyCode == System.Windows.Forms.Keys.S) { _isDownS = isDown; } if (e.KeyCode == System.Windows.Forms.Keys.D) { _isDownD = isDown; } // Déterminer la "zone" int nbKeyPressed = (_isDownW ? 1 : 0) + (_isDownA ? 1 : 0) + (_isDownS ? 1 : 0) + (_isDownD ? 1 : 0); if (nbKeyPressed <= 0 || nbKeyPressed > 2) { _edgeZoneKeyboard = EdgeZone.NONE; } else if (_isDownA && _isDownW) { _edgeZoneKeyboard = EdgeZone.LT; } else if (_isDownA && _isDownS) { _edgeZoneKeyboard = EdgeZone.LB; } else if (_isDownD && _isDownW) { _edgeZoneKeyboard = EdgeZone.RT; } else if (_isDownD && _isDownS) { _edgeZoneKeyboard = EdgeZone.RB; } else if (_isDownA) { _edgeZoneKeyboard = EdgeZone.L; } else if (_isDownD) { _edgeZoneKeyboard = EdgeZone.R; } else if (_isDownW) { _edgeZoneKeyboard = EdgeZone.T; } else if (_isDownS) { _edgeZoneKeyboard = EdgeZone.B; } // Annuler l'événement original e.Handled = true; }
private void GlobalHookMouseMoveExt(object sender, MouseEventExtArgs e) { if (!_activateHook) { return; } // Remettre dans la fenêtre si dépasse int newX = e.X; int newY = e.Y; if (e.X >= _width - 1) { newX = _width - 1; } else if (e.X < 1) { newX = 1; } if (e.Y >= _height - 1) { newY = _height - 1; } else if (e.Y < 1) { newY = 1; } if (newX != e.X || newY != e.Y) { SetCursorPos(newX, newY); e.Handled = true; } // Détecter si dans zone de mouvement bool left, right, top, bottom, isZone; left = newX <= EDGE_SCROLL_PX; right = newX >= _width - EDGE_SCROLL_PX; top = newY <= EDGE_SCROLL_PX; bottom = newY >= _height - EDGE_SCROLL_PX; isZone = left || right || top || bottom; if (!isZone) { _edgeZoneMouse = EdgeZone.NONE; } else if (left && top) { _edgeZoneMouse = EdgeZone.LT; } else if (left && bottom) { _edgeZoneMouse = EdgeZone.LB; } else if (right && top) { _edgeZoneMouse = EdgeZone.RT; } else if (right && bottom) { _edgeZoneMouse = EdgeZone.RB; } else if (left) { _edgeZoneMouse = EdgeZone.L; } else if (right) { _edgeZoneMouse = EdgeZone.R; } else if (top) { _edgeZoneMouse = EdgeZone.T; } else if (bottom) { _edgeZoneMouse = EdgeZone.B; } }