1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#region
 
using Microsoft.Win32;
 
#endregion
 
namespace CSFrameworkV5.Common
{
    /// <summary>
    ///     Windows启动项目管理
    /// </summary>
    public class WinStartItems
    {
        private const string REG_PATH =
            @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
 
        /// <summary>
        ///     取程序安装位置
        /// </summary>
        /// <param name="registName">键名</param>
        /// <returns></returns>
        public static string GetRegistData(string registName)
        {
            string registData;
            var key = Registry.LocalMachine.OpenSubKey(REG_PATH, true);
            registData = ConvertEx.ToString(key.GetValue(registName));
            return registData;
        }
 
        /// <summary>
        ///     取注册表启动项的启动项目名称
        /// </summary>
        /// <returns></returns>
        public static string[] GetRegistName()
        {
            var key = Registry.LocalMachine.OpenSubKey(REG_PATH, true);
            return key.GetValueNames();
        }
 
        /// <summary>
        ///     将程序的开机启动写入注册表
        /// </summary>
        /// <param name="runName">启动项目名称</param>
        /// <param name="starupPath">程序文件名</param>
        /// <returns></returns>
        public static bool RegistStartItem(string runName, string starupPath)
        {
            try
            {
                var key = Registry.LocalMachine.OpenSubKey(REG_PATH, true);
                key.SetValue(runName, starupPath);
                return true;
            }
            catch
            {
                return false;
            }
        }
    }
}