平时,我们经常可以遇到有的应用正在运行,这时我们再点击应用程序的快捷方式,就会出现一个提示我们应用程序正在运行的提示。这是有一很实用的技巧。那么它是怎么实现的呢?其实很简单,只要在程序中加入以下的代码可以实现了。
首先把project的Main方法改成
public static void Main()

{
try

{
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"software\zrh");// 读注册表以判断是否正在运行
if (key == null)//如果不存在,就创建标志位

{
RegistryKey writekey = Registry.LocalMachine.CreateSubKey(@"software\zrh");
writekey.SetValue("instanceFlag", "1");

/**//*调用应用程序代码*/
}
else

{
MessageBox.Show("the application has running");
}
}
catch (Exception ex)

{
MessageBox.Show(" on exception is occuring \n" + ex.Message);
}
}其次在应用退出时加入以下代码,以便删除注册表中的内容,否则以后就不能打开该project了。
try
{
Microsoft.Win32.RegistryKey flagKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"software", true);
flagKey.DeleteSubKey("zrh");
}
catch (Exception ex)

{
MessageBox.Show(" on exception is occuring \n" + ex.Message);
}
经过以上的设置,就可以达到让应用程序只有一个实例的效果了,是不是很简单?当然,达到一个目的的方法有很多,这只是其中的一种。

