1
0
mirror of https://github.com/Ylianst/MeshCentralRouter synced 2025-12-06 00:13:33 +00:00

Fixes to Yilanst #13

This commit is contained in:
Troy Cook
2020-11-21 22:09:22 -06:00
parent 2f9aebb56e
commit a008d1a5e6
11 changed files with 276 additions and 72 deletions

View File

@@ -84,6 +84,7 @@ namespace MeshCentralRouter
{
if (IsAdministrator() == false)
{
// Restart program and run as admin
var exeName = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
ProcessStartInfo startInfo = new ProcessStartInfo(exeName, "-install");
@@ -138,14 +139,6 @@ namespace MeshCentralRouter
[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern Int32 SendMessage(IntPtr hWnd, int msg, int wParam, [MarshalAs(UnmanagedType.LPWStr)]string lParam);
public void setRegValue(string name, string value)
{
try { Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", name, value); } catch (Exception) { }
}
public string getRegValue(string name, string value)
{
try {return Registry.GetValue(@"HKEY_CURRENT_USER\SOFTWARE\Open Source\MeshCentral Router", name, value).ToString(); } catch (Exception) { return value; }
}
public MainForm(string[] args)
{
@@ -159,8 +152,8 @@ namespace MeshCentralRouter
Version version = Assembly.GetEntryAssembly().GetName().Version;
versionLabel.Text = "v" + version.Major + "." + version.Minor + "." + version.Build;
serverNameComboBox.Text = getRegValue("ServerName", "");
userNameTextBox.Text = getRegValue("UserName", "");
serverNameComboBox.Text = Settings.GetRegValue("ServerName", "");
userNameTextBox.Text = Settings.GetRegValue("UserName", "");
title = this.Text;
int argflags = 0;
@@ -206,9 +199,9 @@ namespace MeshCentralRouter
private void MainForm_Load(object sender, EventArgs e)
{
// Load registry settings
showGroupNamesToolStripMenuItem.Checked = (getRegValue("Show Group Names", "1") == "1");
showOfflineDevicesToolStripMenuItem.Checked = (getRegValue("Show Offline Devices", "1") == "1");
if (getRegValue("Device Sort", "Name") == "Name") {
showGroupNamesToolStripMenuItem.Checked = (Settings.GetRegValue("Show Group Names", "1") == "1");
showOfflineDevicesToolStripMenuItem.Checked = (Settings.GetRegValue("Show Offline Devices", "1") == "1");
if (Settings.GetRegValue("Device Sort", "Name") == "Name") {
sortByNameToolStripMenuItem.Checked = true;
sortByGroupToolStripMenuItem.Checked = false;
} else {
@@ -319,12 +312,12 @@ namespace MeshCentralRouter
}
else
{
string ignoreCert = getRegValue("IgnoreCert", null);
string ignoreCert = Settings.GetRegValue("IgnoreCert", null);
if (ignoreCert != null) { meshcentral.okCertHash = ignoreCert; }
}
// Load two factor cookie if present
string twoFactorCookie = getRegValue("TwoFactorCookie", null);
string twoFactorCookie = Settings.GetRegValue("TwoFactorCookie", null);
if ((twoFactorCookie != null) && (twoFactorCookie != "")) { twoFactorCookie = "cookie=" + twoFactorCookie; } else { twoFactorCookie = null; }
Uri serverurl = null;
@@ -363,13 +356,13 @@ namespace MeshCentralRouter
private void Meshcentral_onTwoFactorCookie(string cookie)
{
if (this.InvokeRequired) { this.Invoke(new MeshCentralServer.twoFactorCookieHandler(Meshcentral_onTwoFactorCookie), cookie); return; }
setRegValue("TwoFactorCookie", cookie);
Settings.SetRegValue("TwoFactorCookie", cookie);
}
private void nextButton3_Click(object sender, EventArgs e)
{
// If we need to remember this certificate
if (rememberCertCheckBox.Checked) { setRegValue("IgnoreCert", lastBadConnectCert.GetCertHashString()); }
if (rememberCertCheckBox.Checked) { Settings.SetRegValue("IgnoreCert", lastBadConnectCert.GetCertHashString()); }
// Attempt to login, ignore bad cert.
addButton.Enabled = false;
@@ -393,7 +386,7 @@ namespace MeshCentralRouter
meshcentral.connect(serverurl, null, null, null);
} else {
// Load two factor cookie if present
string twoFactorCookie = getRegValue("TwoFactorCookie", null);
string twoFactorCookie = Settings.GetRegValue("TwoFactorCookie", null);
if ((twoFactorCookie != null) && (twoFactorCookie != "")) { twoFactorCookie = "cookie=" + twoFactorCookie; } else { twoFactorCookie = null; }
serverurl = new Uri("wss://" + serverNameComboBox.Text + "/control.ashx");
meshcentral.connect(serverurl, userNameTextBox.Text, passwordTextBox.Text, twoFactorCookie);
@@ -690,8 +683,8 @@ namespace MeshCentralRouter
addButton.Focus();
if (authLoginUrl == null)
{
setRegValue("ServerName", serverNameComboBox.Text);
setRegValue("UserName", userNameTextBox.Text);
Settings.SetRegValue("ServerName", serverNameComboBox.Text);
Settings.SetRegValue("UserName", userNameTextBox.Text);
}
if (meshcentral.username != null) {
this.Text = title + " - " + meshcentral.username;
@@ -927,7 +920,7 @@ namespace MeshCentralRouter
if (lastBadConnectCert != null) {
meshcentral.okCertHash = lastBadConnectCert.GetCertHashString();
} else {
string ignoreCert = getRegValue("IgnoreCert", null);
string ignoreCert = Settings.GetRegValue("IgnoreCert", null);
if (ignoreCert != null) { meshcentral.okCertHash = ignoreCert; }
}
meshcentral.onStateChanged += Meshcentral_onStateChanged;
@@ -1076,9 +1069,14 @@ namespace MeshCentralRouter
SettingsForm f = new SettingsForm();
f.BindAllInterfaces = inaddrany;
f.ShowSystemTray = (notifyIcon.Visible == true);
f.Exp_KeyboardHookPriority = Settings.GetRegValue("Exp_KeyboardHookPriority", "false") == "true" ? true : false;
f.Exp_KeyboardHook = Settings.GetRegValue("Exp_KeyboardHook", "false") == "true" ? true : false;
if (f.ShowDialog(this) == DialogResult.OK)
{
inaddrany = f.BindAllInterfaces;
Settings.SetRegValue("Exp_KeyboardHook", f.Exp_KeyboardHook.ToString().ToLower());
Settings.SetRegValue("Exp_KeyboardHookPriority", f.Exp_KeyboardHookPriority.ToString().ToLower());
if (f.ShowSystemTray) {
notifyIcon.Visible = true;
this.ShowInTaskbar = false;
@@ -1223,14 +1221,14 @@ namespace MeshCentralRouter
private void showGroupNamesToolStripMenuItem_Click(object sender, EventArgs e)
{
showGroupNamesToolStripMenuItem.Checked = !showGroupNamesToolStripMenuItem.Checked;
setRegValue("Show Group Names", showGroupNamesToolStripMenuItem.Checked ? "1" : "0");
Settings.SetRegValue("Show Group Names", showGroupNamesToolStripMenuItem.Checked ? "1" : "0");
updateDeviceList();
}
private void hideOfflineDevicesToolStripMenuItem_Click(object sender, EventArgs e)
{
showOfflineDevicesToolStripMenuItem.Checked = !showOfflineDevicesToolStripMenuItem.Checked;
setRegValue("Show Offline Devices", showOfflineDevicesToolStripMenuItem.Checked?"1":"0");
Settings.SetRegValue("Show Offline Devices", showOfflineDevicesToolStripMenuItem.Checked?"1":"0");
updateDeviceList();
}
@@ -1238,7 +1236,7 @@ namespace MeshCentralRouter
{
sortByNameToolStripMenuItem.Checked = true;
sortByGroupToolStripMenuItem.Checked = false;
setRegValue("Device Sort", "Name");
Settings.SetRegValue("Device Sort", "Name");
updateDeviceList();
}
@@ -1246,7 +1244,7 @@ namespace MeshCentralRouter
{
sortByNameToolStripMenuItem.Checked = false;
sortByGroupToolStripMenuItem.Checked = true;
setRegValue("Device Sort", "Group");
Settings.SetRegValue("Device Sort", "Group");
updateDeviceList();
}