.Net中如何限制执行程序只能运行一次和如何读写注册表

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章