public Win32MousePathTracker2() { var dpiFactor = Native.GetScreenDpi() / 96.0f; //properties defaults TriggerButton = /*GestureButtons.RightButton |*/ GestureTriggerButton.Middle; InitialValidMove = (int)(5 * dpiFactor); InitialStayTimeout = true; InitialStayTimeoutMillis = 150; EffectiveMove = (int)(10 * dpiFactor) * 2; //todo: 增加灵敏度调整 StepSize = 3; // EffectiveMove/4;// (int) (EffectiveMove * 0.8 * dpiFactor);// EffectiveMove/8; StayTimeout = false; PerformNormalWhenTimeout = false; _mouseKbdHook = new MouseKeyboardHook(); _mouseKbdHook.MouseHookEvent += MouseHookProc; //_mouseKbdHook.KeyboardHookEvent += KeyboardHookProc; //Touch Only Support Win8+ if (OSVersion.Major >= 6 && OSVersion.Minor > 1) { //太难弄,暂时屏蔽 //_touchHook = new TouchHook(); } _edgeDetector = new EdgeInteractDetector(_mouseKbdHook); _edgeDetector.Rub += EdgeDetector_Rub; //virtual gesturing }
protected void Dispose(bool disposing) { if (IsDisposed) { return; } if (disposing) { if (_edgeDetector != null) { _edgeDetector.Dispose(); _edgeDetector = null; } /*if(_touchHook != null) * { * _touchHook.Dispose(); * _touchHook = null; * }*/ _mouseKbdHook.Dispose(); if (!_isStopped) { Stop(); } if (_stayTimer != null) { _stayTimer.Dispose(); } } else { Debug.WriteLine("Win32MousePathTracker2.Dispose(false) called by finalizer, which is probably dangerous."); } IsDisposed = true; }