日期:2014-05-17  浏览次数:21075 次

wpf程序,只允许运行一个程序实例问题、

public partial class App : Application
{
    [DllImport("User32.dll")]
    private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);

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

    protected override void OnStartup(StartupEventArgs e)
    {
        if (!是否已运行)
        {
            //自动主程序
        }
        else
        {
            Application.Current.Shutdown();
            ShowWindowAsync(process.mainWindowHandle, 9);
            SetForegroundWindow(process.mainWindowHandle);
            //实现效果为,当程序已经启动了,再次启动时,将之前已启动的主程序显示出来。
            //当主程序是 Visibility = Visibility.Visible; 的时候可以达到效果,
              //但是当主程序是 Visibility = Visibility.Hidden 的时候,用上面的方式显示不出来,请问要怎么样才能显示出来呢。
        }
    }
}
WPF

------解决方案--------------------
外行了,看不懂
------解决方案--------------------
进程同步请使用System.Threading.Mutex