Added dns change error messages

This commit is contained in:
Jaex 2014-03-31 13:23:56 +03:00
parent 4eefd960ad
commit 6a15f8d5d3
2 changed files with 49 additions and 41 deletions

View file

@ -81,13 +81,9 @@ public string[] GetDNS()
return (string[])adapter["DnsServerSearchOrder"]; return (string[])adapter["DnsServerSearchOrder"];
} }
public bool SetDNS(string primary, string secondary) public uint SetDNS(string primary, string secondary)
{
try
{ {
using (ManagementBaseObject parameters = adapter.GetMethodParameters("SetDNSServerSearchOrder")) using (ManagementBaseObject parameters = adapter.GetMethodParameters("SetDNSServerSearchOrder"))
{
if (parameters != null)
{ {
if (primary == null || secondary == null) if (primary == null || secondary == null)
{ {
@ -99,22 +95,15 @@ public bool SetDNS(string primary, string secondary)
parameters["DNSServerSearchOrder"] = new string[] { primary, secondary }; parameters["DNSServerSearchOrder"] = new string[] { primary, secondary };
} }
// http://msdn.microsoft.com/en-us/library/aa393295(v=vs.85).aspx
using (ManagementBaseObject result = adapter.InvokeMethod("SetDNSServerSearchOrder", parameters, null)) using (ManagementBaseObject result = adapter.InvokeMethod("SetDNSServerSearchOrder", parameters, null))
{ {
return (uint)result["ReturnValue"] == 0; return (uint)result["ReturnValue"];
} }
} }
} }
}
catch (Exception e)
{
DebugHelper.WriteException(e);
}
return false; public uint SetDNSAutomatic()
}
public bool SetDNSAutomatic()
{ {
return SetDNS(null, null); return SetDNS(null, null);
} }

View file

@ -129,8 +129,10 @@ private void btnSave_Click(object sender, EventArgs e)
if (adapter != null) if (adapter != null)
{ {
bool result = false; uint result;
try
{
if (cbAutomatic.Checked) if (cbAutomatic.Checked)
{ {
result = adapter.SetDNSAutomatic(); result = adapter.SetDNSAutomatic();
@ -144,13 +146,30 @@ private void btnSave_Click(object sender, EventArgs e)
{ {
result = adapter.SetDNS(primaryDNS, secondaryDNS); result = adapter.SetDNS(primaryDNS, secondaryDNS);
} }
else
{
throw new Exception("Not valid ip address.");
}
} }
if (result) if (result == 0)
{ {
NativeMethods.DnsFlushResolverCache(); NativeMethods.DnsFlushResolverCache();
MessageBox.Show("DNS successfully set.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show("DNS successfully set.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
else if (result == 1)
{
MessageBox.Show("DNS successfully set. Reboot is required.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (result > 1)
{
MessageBox.Show("DNS set failed with error code: " + result, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show("DNS set failed.\r\n" + ex.ToString(), "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
} }
} }