-
Notifications
You must be signed in to change notification settings - Fork 3
/
RegHelper.cs
155 lines (139 loc) · 3.57 KB
/
RegHelper.cs
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using System;
using Microsoft.Win32;
namespace Jakkl
{
/// <summary>
/// Summary description for RegHelper.
/// </summary>
public class RegHelper
{
public RegHelper()
{
GetKey();
}
/// <summary>
/// Check run on startup status
/// </summary>
/// <returns></returns>
public static bool IsRunOnStartup()
{
bool isStartup = false;
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
try
{
if (key.GetValue("EventMonitor") != null)
isStartup = true;
}
catch (NullReferenceException)
{
}
key.Close();
return isStartup;
}
/// <summary>
/// Set or remove run on startup
/// </summary>
/// <param name="path"></param>
/// <param name="remove"></param>
public static void SetRunOnStartup(string path, bool remove)
{
RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (!remove)
key.SetValue("Jakkl", path);
else
key.DeleteValue("Jakkl", false);
key.Close();
}
private void SetKey()
{
RegistryKey key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Jakkl");
key.SetValue("WatchLog", "Application");
key.SetValue("Filter", "");
key.SetValue("SyslogServer", "");
key.SetValue("SyslogPort", "");
key.Close();
}
/// <summary>
/// Save registry key
/// </summary>
/// <param name="logName">Event log name</param>
public static void SetKey(string logName, string filter, string port, string syslogServer)
{
RegistryKey key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Jakkl");
key.SetValue("WatchLog", logName);
key.SetValue("Filter", filter);
key.SetValue("SyslogPort", port);
key.SetValue("SyslogServer", syslogServer);
key.Close();
}
private void GetKey()
{
string log = "Application";
string filter = "";
string _port = "";
string _syslogServer = "";
RegistryKey key = null;
try
{
key = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Jakkl");
log = key.GetValue("WatchLog").ToString();
filter = key.GetValue("Filter").ToString();
_port = key.GetValue("SyslogPort").ToString();
_syslogServer = key.GetValue("SyslogServer").ToString();
if (log.Length == 0 || filter.Length == 0)
{
SetKey(log, filter, _port, _syslogServer);
}
}
catch (NullReferenceException)
{
SetKey(log, filter, _port, _syslogServer);
}
finally
{
key.Close();
}
watchLog = log;
eventFilter = filter;
syslogPort = _port;
syslogServer = _syslogServer;
}
/// <summary>
/// The name of the event log to monitor.
/// </summary>
public string WatchLog
{
set{ watchLog = value; }
get{ return watchLog; }
}
/// <summary>
/// The event filter
/// </summary>
public string EventFilter
{
set{ eventFilter = value; }
get{ return eventFilter; }
}
/// <summary>
/// The Syslog Port
/// </summary>
public string SyslogPort
{
set { syslogPort = value; }
get { return syslogPort; }
}
/// <summary>
/// The Syslog Server
/// This can be either IP or hostname
/// </summary>
public string SyslogServer
{
set { syslogServer = value; }
get { return syslogServer; }
}
private string watchLog = "";
private string eventFilter = "";
private string syslogPort = "";
private string syslogServer = "";
}
}