从托盘恢复应用程序

时间:2018-06-13 10:35:57

标签: c# wpf taskbar system-tray

我使用Hardcodet.Wpf.TaskbarNotification创建托盘菜单,但是我遇到了一些问题,如果它隐藏到托盘,如何从其他进程打开我的应用程序(进程)

我用过这种方法,但运气不好

    [DllImport("user32.dll")]
    static extern bool SetForegroundWindow(IntPtr hWnd);

    [DllImport("user32.dll")]
    public static extern IntPtr SetFocus(HandleRef hWnd);

    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, int cmd);

我已将事件Activated添加到MainWindow,将GotFocusLoaded添加到TaskbarIcon(TaskBar WPF元素),但这些方法(来自user32) )没有触发任何事件(它在应用程序最小化时起作用,但在隐藏到托盘时不起作用)

有什么想法我需要做什么?

更新

它没有重复,有描述如何在原始帖子中使用Mutex,我已经完成了。我需要"当第一个实例在托盘中时,从我应用的其他实例激活或触发任何事件当第二个实例创建时,只显示MessageBox,第一个实例实例最小化,该帖子很容易做,我的任务比原始帖子中描述的更难,

1 个答案:

答案 0 :(得分:0)

从另一个过程?如果没有提升,您可能很难将应用程序带到前台。阅读"备注"第here节。