2021-12-10 17:58:23 +08:00
|
|
|
|
using GeekDesk.Control.UserControls.Config;
|
2022-01-06 17:45:25 +08:00
|
|
|
|
using GeekDesk.Util;
|
2021-12-10 17:58:23 +08:00
|
|
|
|
using GeekDesk.ViewModel;
|
|
|
|
|
|
using Gma.System.MouseKeyHook;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
using System.Windows;
|
|
|
|
|
|
using System.Windows.Threading;
|
|
|
|
|
|
|
|
|
|
|
|
namespace GeekDesk.Thread
|
|
|
|
|
|
{
|
|
|
|
|
|
public class MouseHookThread
|
|
|
|
|
|
{
|
|
|
|
|
|
private static AppConfig appConfig = MainWindow.appData.AppConfig;
|
2021-12-22 09:34:04 +08:00
|
|
|
|
private static IKeyboardMouseEvents m_GlobalHook = null;
|
2021-12-13 13:03:50 +08:00
|
|
|
|
private static Dispatcher dispatcher;
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-10 17:58:23 +08:00
|
|
|
|
|
|
|
|
|
|
public static void MiddleHook()
|
|
|
|
|
|
{
|
|
|
|
|
|
//使用dispatcher来单独监听UI线程 防止程序卡顿
|
2021-12-13 13:03:50 +08:00
|
|
|
|
dispatcher = DispatcherBuild.Build();
|
2021-12-22 09:34:04 +08:00
|
|
|
|
m_GlobalHook = Hook.GlobalEvents();
|
2021-12-10 17:58:23 +08:00
|
|
|
|
dispatcher.Invoke((Action)(() =>
|
|
|
|
|
|
{
|
|
|
|
|
|
m_GlobalHook.MouseDownExt += M_GlobalHook_MouseDownExt;
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-12-13 13:03:50 +08:00
|
|
|
|
public static void Dispose()
|
|
|
|
|
|
{
|
2022-01-06 18:59:51 +08:00
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
m_GlobalHook.MouseDownExt -= M_GlobalHook_MouseDownExt;
|
|
|
|
|
|
m_GlobalHook.Dispose();
|
|
|
|
|
|
dispatcher.InvokeShutdown();
|
2022-01-06 20:05:40 +08:00
|
|
|
|
dispatcher = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch { }
|
2022-01-06 18:59:51 +08:00
|
|
|
|
|
2021-12-13 13:03:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2021-12-10 17:58:23 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 鼠标中键呼出
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
|
private static void M_GlobalHook_MouseDownExt(object sender, System.Windows.Forms.MouseEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (appConfig.MouseMiddleShow && e.Button == System.Windows.Forms.MouseButtons.Middle)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (MotionControl.hotkeyFinished)
|
|
|
|
|
|
{
|
|
|
|
|
|
MainWindow.mainWindow.Dispatcher.Invoke((Action)(() =>
|
|
|
|
|
|
{
|
2022-01-06 17:45:25 +08:00
|
|
|
|
if (MainWindow.mainWindow.Visibility == Visibility.Collapsed
|
|
|
|
|
|
|| MainWindow.mainWindow.Opacity == 0
|
|
|
|
|
|
|| MarginHide.isHide)
|
2021-12-10 17:58:23 +08:00
|
|
|
|
{
|
|
|
|
|
|
MainWindow.ShowApp();
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
MainWindow.HideApp();
|
|
|
|
|
|
}
|
|
|
|
|
|
}));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|