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; } } } }