操作INI文件以及开机自动运行

    public class VolumnCfg
    {
        public static string iniFile;
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        ///   <summary>  
        ///   构造方法  
        ///   </summary>  
        ///   <param   name="iniFile">文件路径</param>  
        public VolumnCfg()
        {
            iniFile = System.Windows.Forms.Application.StartupPath + "\\VolumnCfg.ini";
            if (!File.Exists(iniFile))
                initCfgFile(iniFile);
        }

        public static void initCfgFile(string FilePath)
        {
            IniWriteValue("VolumnCfg", "AutoRun", System.Boolean.FalseString);
            IniWriteValue("VolumnCfg", "Opacity", "0.8");
            IniWriteValue("VolumnCfg", "DelaySec", "3");
        }

        ///   <summary>  
        ///   写入INI文件  
        ///   </summary>  
        ///   <param   name="Section">项目名称(如   [DataTP]   )</param>  
        ///   <param   name="Key">键</param>  
        ///   <param   name="Value">值</param>  
        public static void IniWriteValue(string Section, string Key, string Value)
        {
            WritePrivateProfileString(Section, Key, Value, iniFile);
        }

        ///   <summary>  
        ///   读出INI文件  
        ///   </summary>  
        ///   <param   name="Section">项目名称(如   [DataTP]   )</param>  
        ///   <param   name="Key">键</param>  
        public static string IniReadValue(string Section, string Key)
        {
            StringBuilder temp = new StringBuilder(500);
            int i = GetPrivateProfileString(Section, Key, "", temp, 500, iniFile);
            return temp.ToString();
        }

             
        /// <summary>
        /// 开机启动项
        /// </summary>
        /// <param name="Started">是否启动</param>
        /// <param name="name">启动值的名称</param>
        /// <param name="path">启动程序的路径</param>
        public static void SetAutoRun(bool Started, string name, string path)
        {
            RegistryKey HKLM = Registry.LocalMachine;
            RegistryKey Run = HKLM.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            if (Started == true)
            {
                try
                {
                    Run.SetValue(name, path);
                    HKLM.Close();
                }
                catch (Exception)
                {
                    //MessageBox.Show(Err.Message.ToString(), "MUS", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

        }
posted @ 2008-06-30 16:23  龙城叫花鸡  阅读(547)  评论(0编辑  收藏  举报