最近在做一個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
{
}
}