.Net中如何限制执行程序只能运行一次和如何读写注册表
2008-01-02 10:02
369 查看
最近在做一个MSN风格的自动上传报文的托盘程序时,需要限制程序只能运行一次,找了下,还好在其他项目中找到了相关的资料,代码如下:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string processName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
int matched = 0;
foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses())
{
if (processName == process.ProcessName) matched++;
}
if (matched >= 2)
{
return;
}
Application.Run(new Main_Obser());
}
读写注册表的也挺简单的,代码如下:
/// <summary>
/// 在注册表中输入程序自动运行路径
/// </summary>
/// <param name="programPath"></param>
public static void SetRegistryKey(string programPath)
{
try
{
RegistryKey rk = Registry.LocalMachine.CreateSubKey(AUTOUPLOAD_REGISTRY_PATH);
rk.SetValue(DEFAULTNAME, programPath+@"/"+PROGRAM_NAME);
rk.Close();
}
catch
{
}
}
/// <summary>
/// 在注册表中删除程序自动运行路径
/// </summary>
/// <param name="programPath"></param>
public static void deleteRegistryKey()
{
try
{
RegistryKey rk = Registry.LocalMachine.CreateSubKey(AUTOUPLOAD_REGISTRY_PATH);
rk.SetValue(DEFAULTNAME,"");
rk.Close();
}
catch
{
}
}
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
string processName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
int matched = 0;
foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcesses())
{
if (processName == process.ProcessName) matched++;
}
if (matched >= 2)
{
return;
}
Application.Run(new Main_Obser());
}
读写注册表的也挺简单的,代码如下:
/// <summary>
/// 在注册表中输入程序自动运行路径
/// </summary>
/// <param name="programPath"></param>
public static void SetRegistryKey(string programPath)
{
try
{
RegistryKey rk = Registry.LocalMachine.CreateSubKey(AUTOUPLOAD_REGISTRY_PATH);
rk.SetValue(DEFAULTNAME, programPath+@"/"+PROGRAM_NAME);
rk.Close();
}
catch
{
}
}
/// <summary>
/// 在注册表中删除程序自动运行路径
/// </summary>
/// <param name="programPath"></param>
public static void deleteRegistryKey()
{
try
{
RegistryKey rk = Registry.LocalMachine.CreateSubKey(AUTOUPLOAD_REGISTRY_PATH);
rk.SetValue(DEFAULTNAME,"");
rk.Close();
}
catch
{
}
}
相关文章推荐
- .NET限制程序一次只能运行一个实例
- 如何限制应用程序在同一时刻只能运行一次?
- 如何限制C#程序只能运行单个实例?
- .net利用程序集的GUID解决程序只能运行一次的问题
- PB运行的程序只能运行一次
- [项目整理]Win32,MFC的可执行文件只能运行一次
- 如何使自己的程序只运行一次
- 如何 ︰ 执行批量更新和插入使用.NET 提供程序在 C#.NET OpenXML
- 程序只能运行一次
- C#如何让同一个窗口只能打开一次和一个程序只能同时打开一个
- 如何使.NET程序只运行单一实例
- 如何使自己的程序只运行一次
- 让程序只能运行一次
- matlab中的如何终止执行程序,如何设置断点,断点后继续运行
- 在VC中实现一次执行一个进程,如果同时打开两个,则报该程序已经运行
- 如何实现.net下开发的程序脱离.net环境运行并且可以跨平台的想法
- C++检查注册表中.net版本号,自动安装.net安装包,然后再执行C#程序
- 限制程序只运行一次
- 如何自动以管理员身份运行.NET程序?
- 如何使自己的程序只运行一次