如何从任务栏图标恢复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;
}
}
}
当我双击图标时,如何防止我的应用程序的第二个副本启动,而不是让已经运行并最小化的应用程序进入任务栏以显示窗口?
当用户单击托盘图标时,只需激活您的窗口。
激活窗口:myWindowToFront.Activate();
WPF托盘图标:WPF NotifyIcon(非常好的东西)