|
using System;
using System.Linq;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Win32;
namespace ShowCommandLine
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[MTAThread]
static void Main(string[] args)
{
IntPtr eventHandle = IntPtr.Zero;
const string ApplicationEventName = "ShowCommandLineEvent"; //We will use this as our handle to
//to ensure only one instance of the
//program is started
try
{
//Try to create the event. If the creation fails then it is
//because another instance of this application is already
//running. If another instance exists then this instance
//should immediatly terminate.
eventHandle = CoreDLL.CreateEvent(IntPtr.Zero, true, false, ApplicationEventName);
int lastError = Marshal.GetLastWin32Error();
//MessageBox.Show(String.Format("event handle {0}",eventHandle));
if (0 == lastError)
{
Form1 form = new Form1();
form.Args = args;
Application.Run(form);
}
}
finally
{
//When the application is no longer running it should release the event
if (eventHandle != IntPtr.Zero)
CoreDLL.CloseHandle(eventHandle);
}
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.