修复未完全关闭进程的bug
This commit is contained in:
@@ -124,7 +124,7 @@
|
|||||||
<hc:NotifyIcon.ContextMenu>
|
<hc:NotifyIcon.ContextMenu>
|
||||||
<ContextMenu Width="130">
|
<ContextMenu Width="130">
|
||||||
<MenuItem Header="打开面板" Click="ShowApp"/>
|
<MenuItem Header="打开面板" Click="ShowApp"/>
|
||||||
<MenuItem Header="关闭托盘图标" Click="CloseBarIcon"/>
|
<MenuItem Header="关闭图标" Click="CloseBarIcon"/>
|
||||||
<MenuItem Header="待办" Click="BacklogMenuClick"/>
|
<MenuItem Header="待办" Click="BacklogMenuClick"/>
|
||||||
<MenuItem Header="程序目录" Click="OpenThisDir"/>
|
<MenuItem Header="程序目录" Click="OpenThisDir"/>
|
||||||
<MenuItem Header="设置" Click="ConfigApp"/>
|
<MenuItem Header="设置" Click="ConfigApp"/>
|
||||||
|
|||||||
@@ -426,6 +426,7 @@ namespace GeekDesk
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ExitApp(object sender, RoutedEventArgs e)
|
private void ExitApp(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
MouseHookThread.Dispose();
|
||||||
Application.Current.Shutdown();
|
Application.Current.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -506,10 +507,13 @@ namespace GeekDesk
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ReStartApp(object sender, RoutedEventArgs e)
|
private void ReStartApp(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
|
MouseHookThread.Dispose();
|
||||||
|
|
||||||
Process p = new Process();
|
Process p = new Process();
|
||||||
p.StartInfo.FileName = Constants.APP_DIR + Constants.MY_NAME + ".exe";
|
p.StartInfo.FileName = Constants.APP_DIR + Constants.MY_NAME + ".exe";
|
||||||
p.StartInfo.WorkingDirectory = Constants.APP_DIR;
|
p.StartInfo.WorkingDirectory = Constants.APP_DIR;
|
||||||
p.Start();
|
p.Start();
|
||||||
|
|
||||||
Application.Current.Shutdown();
|
Application.Current.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,19 +15,28 @@ namespace GeekDesk.Thread
|
|||||||
public class MouseHookThread
|
public class MouseHookThread
|
||||||
{
|
{
|
||||||
private static AppConfig appConfig = MainWindow.appData.AppConfig;
|
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()
|
public static void MiddleHook()
|
||||||
{
|
{
|
||||||
//使用dispatcher来单独监听UI线程 防止程序卡顿
|
//使用dispatcher来单独监听UI线程 防止程序卡顿
|
||||||
Dispatcher dispatcher = DispatcherBuild.Build();
|
dispatcher = DispatcherBuild.Build();
|
||||||
dispatcher.Invoke((Action)(() =>
|
dispatcher.Invoke((Action)(() =>
|
||||||
{
|
{
|
||||||
m_GlobalHook.MouseDownExt += M_GlobalHook_MouseDownExt;
|
m_GlobalHook.MouseDownExt += M_GlobalHook_MouseDownExt;
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void Dispose()
|
||||||
|
{
|
||||||
|
m_GlobalHook.MouseDownExt -= M_GlobalHook_MouseDownExt;
|
||||||
|
m_GlobalHook.Dispose();
|
||||||
|
dispatcher.InvokeShutdown();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 鼠标中键呼出
|
/// 鼠标中键呼出
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user