Spring – Rev 3
?pathlinks?
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Threading;
using System.Windows.Forms;
using Spring.Main;
namespace Spring
{
internal static class Program
{
#region Static Fields and Constants
private static readonly Mutex Mutex = new Mutex(true, Constants.AssemblyGuid);
#endregion
#region Private Methods
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
private static void Main()
{
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
if (Mutex.WaitOne(TimeSpan.Zero, true))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
return;
}
// Foreground current other application window.
Natives.PostMessage(
(IntPtr) Natives.HWndBroadcast,
Natives.WmShowMe,
IntPtr.Zero,
IntPtr.Zero);
}
#endregion
#region Nested Types
internal class Natives
{
#region Static Fields and Constants
public const int HWndBroadcast = 0xffff;
public static readonly int WmShowMe = RegisterWindowMessage("WM_SHOWME");
#endregion
#region Public Methods
[DllImport("user32.dll", EntryPoint = "RegisterWindowMessageW", SetLastError = true)]
public static extern int RegisterWindowMessage(string lpString);
[DllImport("user32")]
public static extern bool PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
#endregion
}
#endregion
}
}