测试了一下,发现窗口缩小后不能自动跳到最前端,暂时没有时间去解决
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Mutex mutex = new Mutex(true, "单实例程序", out bool isNewInstance);
if (isNewInstance != true)
{
IntPtr intPtr = FindWindowW(null, "单实例窗口");
if (intPtr != IntPtr.Zero)
{
SetForegroundWindow(intPtr);
}
Shutdown();
}
}
[DllImport("User32", CharSet = CharSet.Unicode)]
static extern IntPtr FindWindowW(String lpClassName, String lpWinwodName);
[DllImport("User32", CharSet = CharSet.Unicode)]
static extern Boolean SetForegroundWindow(IntPtr hWnd);
}