修复未完全关闭进程的bug

This commit is contained in:
liufei
2021-12-13 13:03:50 +08:00
parent f96a76e6fb
commit 3483bf88c2
3 changed files with 17 additions and 4 deletions

View File

@@ -124,7 +124,7 @@
<hc:NotifyIcon.ContextMenu>
<ContextMenu Width="130">
<MenuItem Header="打开面板" Click="ShowApp"/>
<MenuItem Header="关闭托盘图标" Click="CloseBarIcon"/>
<MenuItem Header="关闭图标" Click="CloseBarIcon"/>
<MenuItem Header="待办" Click="BacklogMenuClick"/>
<MenuItem Header="程序目录" Click="OpenThisDir"/>
<MenuItem Header="设置" Click="ConfigApp"/>

View File

@@ -426,6 +426,7 @@ namespace GeekDesk
/// <param name="e"></param>
private void ExitApp(object sender, RoutedEventArgs e)
{
MouseHookThread.Dispose();
Application.Current.Shutdown();
}
@@ -506,10 +507,13 @@ namespace GeekDesk
/// <param name="e"></param>
private void ReStartApp(object sender, RoutedEventArgs e)
{
MouseHookThread.Dispose();
Process p = new Process();
p.StartInfo.FileName = Constants.APP_DIR + Constants.MY_NAME + ".exe";
p.StartInfo.WorkingDirectory = Constants.APP_DIR;
p.Start();
Application.Current.Shutdown();
}

View File

@@ -15,19 +15,28 @@ namespace GeekDesk.Thread
public class MouseHookThread
{
private static AppConfig appConfig = MainWindow.appData.AppConfig;
public static IKeyboardMouseEvents m_GlobalHook = Hook.GlobalEvents();
private static IKeyboardMouseEvents m_GlobalHook = Hook.GlobalEvents();
private static Dispatcher dispatcher;
public static void MiddleHook()
{
//使用dispatcher来单独监听UI线程 防止程序卡顿
Dispatcher dispatcher = DispatcherBuild.Build();
dispatcher = DispatcherBuild.Build();
dispatcher.Invoke((Action)(() =>
{
m_GlobalHook.MouseDownExt += M_GlobalHook_MouseDownExt;
}));
}
public static void Dispose()
{
m_GlobalHook.MouseDownExt -= M_GlobalHook_MouseDownExt;
m_GlobalHook.Dispose();
dispatcher.InvokeShutdown();
}
/// <summary>
/// 鼠标中键呼出
/// </summary>