netmonitor/NetMonitorClient/EditNetworks.cs

229 lines
7.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
namespace NetMonitorClient
{
public partial class EditNetworks : Form
{
public enum Options
{
Show
}
internal enum RWFlag
{
Read,
Write
}
internal enum AMMode
{
Auto,
Manu,
Disable
}
private RWFlag acess;
private InIReader networkini;
public EditNetworks(Options option)
{
if (option == Options.Show)
{
this.acess = RWFlag.Read;
}
InitializeComponent();
ReadNetworksSettings();
SetRWSettings();
}
private void SetRWSettings()
{
if (this.acess == RWFlag.Read)
{
this.BoxDns.ReadOnly = true;
this.BoxGateway.ReadOnly = true;
this.BoxIpAdresse.ReadOnly = true;
this.BoxName.ReadOnly = true;
this.BoxSubnet.ReadOnly = true;
this.BoxWins.ReadOnly = true;
this.Text = "Netzwerke Ansehen";
this.RadioAllAuto.Enabled = false;
this.RadioAllManu.Enabled = false;
this.RadioDnsAuto.Enabled = false;
this.RadioDnsManu.Enabled = false;
this.RadioIpAuto.Enabled = false;
this.RadioIpManu.Enabled = false;
this.RadioWinsAuto.Enabled = false;
this.RadioWinsManu.Enabled = false;
}
}
private void ReadNetworksSettings()
{
this.networkini = new InIReader("network.ini");
ArrayList networks = this.networkini.getSections();
foreach (String net in networks)
{
this.NetworksList.Items.Add(net);
}
}
private void NetworksList_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox Item = (ListBox)sender;
String name = networkini.getValue(Item.Text, "Name");
String ip = networkini.getValue(Item.Text, "Ip");
String subnet = networkini.getValue(Item.Text, "Subnet");
String gateway = networkini.getValue(Item.Text, "Gateway");
String dns = networkini.getValue(Item.Text, "Dns");
String wins = networkini.getValue(Item.Text, "Wins");
String adapter = networkini.getValue(Item.Text, "Adapter");
this.BoxName.Text = name;
if (ip == "auto" && dns == "auto" && wins == "auto")
{
this.setAllMode(AMMode.Auto);
}
else
{
if (ip == "auto")
setIpMode(AMMode.Auto);
else
{
setIpMode(AMMode.Manu);
this.BoxIpAdresse.Text = ip;
this.BoxSubnet.Text = ConvSubnet(subnet);
this.BoxGateway.Text = gateway;
}
if (dns == "auto")
setDnsMode(AMMode.Auto);
else
{
setDnsMode(AMMode.Manu);
this.BoxDns.Text = dns;
}
if (wins == "auto")
setWinsMode(AMMode.Auto);
else
{
setWinsMode(AMMode.Manu);
this.BoxWins.Text = wins;
}
}
}
private string ConvSubnet(string subnet)
{
String[] ips = subnet.Split('.');
String Bits = "";
foreach (String part in ips)
{
Bits += Convert.ToString(byte.Parse(part), 2).PadLeft(8, '0');
}
int meng = 0;
foreach (char bit in Bits)
{
if (bit == '1')
meng++;
}
return meng.ToString();
}
private void setAllMode(AMMode mode)
{
if (mode == AMMode.Auto)
{
setIpMode(AMMode.Disable);
setDnsMode(AMMode.Disable);
setWinsMode(AMMode.Disable);
}
if (mode == AMMode.Manu)
{
setIpMode(AMMode.Manu);
setDnsMode(AMMode.Manu);
setWinsMode(AMMode.Manu);
}
}
private void setWinsMode(AMMode mode)
{
if (mode == AMMode.Auto)
{
this.RadioWinsAuto.Checked = true;
this.RadioWinsManu.Checked = false;
this.BoxWins.Enabled = false;
this.BoxWins.Text = "";
}
if (mode == AMMode.Disable)
{
this.RadioWinsManu.Checked = false;
this.RadioWinsAuto.Checked = false;
this.BoxWins.Enabled = false;
this.BoxWins.Text = "";
}
if (mode == AMMode.Manu)
{
this.RadioWinsAuto.Checked = false;
this.RadioWinsManu.Checked = true;
this.BoxWins.Enabled = true;
}
}
private void setDnsMode(AMMode mode)
{
if (mode == AMMode.Auto)
{
this.RadioDnsAuto.Checked = true;
this.RadioDnsManu.Checked = false;
this.BoxDns.Enabled = false;
this.BoxDns.Text = "";
}
if (mode == AMMode.Disable)
{
this.RadioDnsManu.Checked = false;
this.RadioDnsAuto.Checked = false;
this.BoxDns.Enabled = false;
this.BoxDns.Text = "";
}
if (mode == AMMode.Manu)
{
this.RadioDnsAuto.Checked = false;
this.RadioDnsManu.Checked = true;
this.BoxDns.Enabled = true;
}
}
private void setIpMode(AMMode mode)
{
if (mode == AMMode.Auto)
{
this.RadioIpAuto.Checked = true;
this.RadioIpManu.Checked = false;
this.BoxIpAdresse.Enabled = false;
this.BoxIpAdresse.Text = "";
this.BoxSubnet.Enabled = false;
this.BoxSubnet.Text = "";
}
if (mode == AMMode.Disable)
{
this.RadioIpManu.Checked = false;
this.RadioIpAuto.Checked = false;
this.BoxIpAdresse.Enabled = false;
this.BoxIpAdresse.Text = "";
this.BoxSubnet.Enabled = false;
this.BoxSubnet.Text = "";
}
if (mode == AMMode.Manu)
{
this.RadioIpAuto.Checked = false;
this.RadioIpManu.Checked = true;
this.BoxIpAdresse.Enabled = true;
this.BoxSubnet.Enabled = true;
}
}
}
}