ManagerUtil.cs
4.1 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StroreManager
{
public class ManagerUtil
{
public static void AutoRun(string strName, bool value)
{
try
{
//创建启动对象
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
//设置运行文件
startInfo.FileName = System.Windows.Forms.Application.StartupPath + "\\AuToRunManager.exe";
//设置启动参数
startInfo.Arguments = String.Join(" ", new object[2] { strName, value });
//设置启动动作,确保以管理员身份运行
startInfo.Verb = "runas";
//如果不是管理员,则启动UAC
System.Diagnostics.Process.Start(startInfo);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
//public static void AutoRun(string filePath, bool isAuto)
//{
// try
// {
// string strnewName = filePath.Substring(filePath.LastIndexOf("\\") + 1);
// if (isAuto)
// {
// RegistryKey Local = Registry.LocalMachine;
// RegistryKey runKey = Local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run\");
// runKey.SetValue(strnewName, filePath);
// Local.Close();
// MessageBox.Show("程序" + strnewName + "开机启动设置完成,重新启动计算机后即可生效!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// else
// {
// //修改注册表,使程序开机时不自动执行。
// Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");
// Rkey.DeleteValue(strnewName, false);
// Rkey.Close();
// MessageBox.Show("程序" + strnewName + "开机启动已取消!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// }
// catch (Exception ex)
// {
// MessageBox.Show(ex.ToString());
// }
//}
private static string fileName = "auToData.data";
private static object LockData="";
internal static void SaveAutoRunToFile(List<StoreExeBean> exeList)
{
lock (LockData)
{
string path = Application.StartupPath;
string FilePath = path + @"\" + fileName;
if (!File.Exists(FilePath))
{
File.Create(FilePath);
}
string str = "";
foreach (StoreExeBean exe in exeList)
{
if (exe.IsAutoRun)
{
str = str + exe.AuToFileData()+"\r\n";
}
}
File.WriteAllText(FilePath, str);
}
}
internal static List<StoreExeBean> GetAuToExeList()
{
lock (LockData)
{
string path = Application.StartupPath;
string FilePath = path + @"\" + fileName;
List<StoreExeBean> result = new List<StoreExeBean>();
if (File.Exists(FilePath))
{
string[] fileArray = File.ReadAllLines(FilePath, Encoding.UTF8);
foreach (string str in fileArray)
{
StoreExeBean store = StoreExeBean.ConverToBean(str);
if (store != null)
{
result.Add(store);
}
}
}
return result;
}
}
}
}