ابتدا System.Management رو به References پروژه بیفزایید و سپس :
using System.Reflection;
using System.Management;
[STAThread]
static void Main()
{
string[] parts =
Assembly.GetExecutingAssembly().Location.Split("\\ ".ToCharArray());
string appName = parts[parts.Length - 1];
string query = "select name from CIM_Process where name = '"
+ appName + "'";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
int runcount = 0;
foreach (ManagementObject item in searcher.Get())
{
runcount++;
if (runcount > 1) break;
}
if (runcount == 1)
{
Application.Run(new Form1());
}
else
{
System.Windows.Forms.MessageBox.Show("قبلا اجرا شده");
Application.Exit();
}
}
منبع : http://weblogs.asp.net/rchartier/arc...5/22/7410.aspx