如何从任务栏图标恢复WPF应用程序,而不是通过单击桌面上的快捷方式打开它

本文关键字:桌面 单击 快捷方式 图标 任务栏 恢复 WPF 应用程序 | 更新日期: 2023-09-27 18:28:30

考虑:

public partial class App : Application
{
    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    private Mutex myMutex;
    protected override void OnStartup(StartupEventArgs theArgs)
    {
        bool aIsNewInstance = false;
        myMutex = new Mutex(true, "Testing", out aIsNewInstance);
        if (!aIsNewInstance)
        {
            App.Current.Shutdown();
            Process current = Process.GetCurrentProcess();
            foreach (Process process in Process.GetProcessesByName(current.ProcessName))
            {
                if (process.Id != current.Id)
                {
                    IntPtr pointer = FindWindow(null, "Testing");
                    App.Current.Shutdown();
                    ShowWindow(pointer, 1);
                    break;
                }
            }
        }

当我双击图标时,如何防止我的应用程序的第二个副本启动,而不是让已经运行并最小化的应用程序进入任务栏以显示窗口?

如何从任务栏图标恢复WPF应用程序,而不是通过单击桌面上的快捷方式打开它

当用户单击托盘图标时,只需激活您的窗口。

激活窗口:myWindowToFront.Activate();

WPF托盘图标:WPF NotifyIcon(非常好的东西)