报错,不会解决了。。。求大神帮忙看一下

tz034204tz 2017-09-27 08:47:07
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.Runtime.InteropServices;
using System.Management;
using System.Net.NetworkInformation;
using System.Text.RegularExpressions;



namespace WebPages
{
public partial class Form1 : Form
{
ConfigFile cf = ConfigFile.Instanse;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
DialogResult choice;  // 用户的选择
choice = MessageBox.Show("确定要退出吗?", "退出系统", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

if (choice == DialogResult.OK)
{
Application.Exit(); // 退出应用程序
}
}


//<span style="font-size:14px;">//ShellExecute函数ShowCmd参数可选值

/// <summary>
/// 小程序
/// </summary>


//开始删除IE缓存、打开计算器、打开记事本

public enum ShowCommands : int
{
SW_HIDE = 0,
SW_SHOWNORMAL = 1,
SW_NORMAL = 1,
SW_SHOWMINIMIZED = 2,
SW_SHOWMAXIMIZED = 3,
SW_MAXIMIZE = 3,
SW_SHOWNOACTIVATE = 4,
SW_SHOW = 5,
SW_MINIMIZE = 6,
SW_SHOWMINNOACTIVE = 7,
SW_SHOWNA = 8,
SW_RESTORE = 9,
SW_SHOWDEFAULT = 10,
SW_FORCEMINIMIZE = 11,
SW_MAX = 11
}

//调用Win32 API
[DllImport("shell32.dll")]
static extern IntPtr ShellExecute(IntPtr hwnd, string lpOperation, string lpFile,
string lpParameters, string lpDirectory, ShowCommands nShowCmd);

private void button43_Click(object sender, EventArgs e)
{
//删除IE临时文件
ShellExecute(IntPtr.Zero, "open", "rundll32.exe",
"InetCpl.cpl,ClearMyTracksByProcess 255", "", ShowCommands.SW_SHOWMAXIMIZED);
}

private void button44_Click(object sender, EventArgs e)
{
//调用calc.exe打开计算器
ShellExecute(this.Handle, "open", "calc.exe", null, null, ShowCommands.SW_FORCEMINIMIZE);
}

private void button45_Click(object sender, EventArgs e)
{
//调用NOTEPAD.EXE打开记事本
ShellExecute(this.Handle, "open", "NOTEPAD.EXE", null, null, ShowCommands.SW_SHOWNORMAL);
}
//结束删除IE缓存、打开计算器、打开记事本

///

#region 加载配置文件中的信息
/// <summary>
/// 加载配置文件中的信息
/// </summary>
protected void loadConfig()
{
cf.fileName = AppDomain.CurrentDomain.BaseDirectory + "\\config.ini";
txtIP.Text = cf["ip地址"];
txtSubMark.Text = cf["子网掩码"];
txtGateWay.Text = cf["默认网关"];
txtDNS1.Text = cf["主DNS"];
txtDNS2.Text = cf["备用DNS"];
}
#endregion

#region 设置ip信息到网卡
private void btnSettingNetwork_Click(object sender, EventArgs e)
{

try
{
if (!IsIpaddress(txtIP.Text.Trim()))
{
MessageBox.Show("ip格式不正确!"); return;
}
if (!IsIpaddress(txtSubMark.Text.Trim()))
{
MessageBox.Show("子网掩码格式不正确!"); return;
}
if (!IsIpaddress(txtGateWay.Text.Trim()))
{
MessageBox.Show("网关格式不正确!"); return;
}
if (!IsIpaddress(txtDNS1.Text.Trim()))
{
MessageBox.Show("DNS1格式不正确!"); return;
}
if (!IsIpaddress(txtDNS2.Text.Trim()))
{
MessageBox.Show("DNS2格式不正确!"); return;
}
string[] ip = new string[] {txtIP.Text.Trim() };
string[] SubMark = new string[] {txtSubMark.Text.Trim() };
string[] GateWay = new string[] {txtGateWay.Text.Trim() };
string[] DNS = new string[] {txtDNS1.Text.Trim(),txtDNS2.Text.Trim() };
SetIpInfo(ip, SubMark, GateWay, DNS);
cf["ip地址"] = txtIP.Text.Trim();
cf["子网掩码"] = txtSubMark.Text.Trim();
cf["默认网关"] = txtGateWay.Text.Trim();
cf["主DNS"] = txtDNS1.Text.Trim();
cf["备用DNS"] = txtDNS2.Text.Trim();
MessageBox.Show("ip信息设置成功!","成功提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch(Exception er)
{
MessageBox.Show("设置出错:"+er.Message,"出错提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}

protected void SetIpInfo(string []ip,string []SubMark,string []GateWay,string []DNS)
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (!(bool)mo["IPEnabled"]) continue;
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ip;//ip地址
inPar["SubnetMask"] =SubMark; //子网掩码
mo.InvokeMethod("EnableStatic", inPar, null);//执行

inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = GateWay; //设置网关地址 1.网关;2.备用网关
outPar = mo.InvokeMethod("SetGateways", inPar, null);//执行

inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = DNS; //设置DNS 1.DNS 2.备用DNS
mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);// 执行
break; //只设置一张网卡,不能多张。
}
}

#endregion

#region 从网卡获取ip设置信息
/// <summary>
/// 从网卡获取ip设置信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGetFromNetwork_Click(object sender, EventArgs e)
{
NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface adapter in nics)
{
bool Pd1 = (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet); //判断是否是以太网连接
if (Pd1)
{
IPInterfaceProperties ip = adapter.GetIPProperties(); //IP配置信息
if (ip.UnicastAddresses.Count > 0)
{
txtIP.Text = ip.UnicastAddresses[0].Address.ToString();//IP地址
txtSubMark.Text = ip.UnicastAddresses[0].IPv4Mask.ToString();//子网掩码

}
if (ip.GatewayAddresses.Count > 0)
{
txtGateWay.Text = ip.GatewayAddresses[0].Address.ToString();//默认网关
}
int DnsCount = ip.DnsAddresses.Count;
Console.WriteLine("DNS服务器地址:");
if (DnsCount > 0)
{
try
{
txtDNS1.Text = ip.DnsAddresses[0].ToString(); //主DNS
txtDNS2.Text = ip.DnsAddresses[1].ToString(); //备用DNS地址
}
catch(Exception er)
{
throw er;
}
}
}
}
}
#endregion

#region 判断是否是正确的ip地址
/// <summary>
/// 判断是否是正确的ip地址
/// </summary>
/// <param name="ipaddress"></param>
/// <returns></returns>
protected bool IsIpaddress(string ipaddress)
{
string[] nums = ipaddress.Split('.');
if (nums.Length != 4) return false;
foreach (string num in nums)
{
if ( Convert.ToInt32(num) < 0 || Convert.ToInt32(num) > 255) return false;
}
return true;
}
#endregion

#region Form1_Load
private void Form1_Load(object sender, EventArgs e)
{
loadConfig();
}
#endregion



}
}

报错:
未能找到类型或命名空间名称“ManagementBaseObject”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?)
未能找到类型或命名空间名称“ManagementObjectCollection”(是否缺少 using 指令或程序集引用?)


...全文
409 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tz034204tz 2017-09-29
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 4 楼 tz034204tz 的回复:] [quote=引用 1 楼 duanzi_peng 的回复:] 未能找到类型或命名空间名称“ManagementBaseObject”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementObjectCollection”(是否缺少 using 指令或程序集引用?) -》看你的代码从哪里来的,右键你的项目引用-》添加引用-》找到程序集中的System.Management dll 引用到项目中。
我最顶上名写了using System.Management;[/quote] 切换编译平台编译[/quote] 弄起来了,谢谢啊
exception92 2017-09-28
  • 打赏
  • 举报
回复
引用 4 楼 tz034204tz 的回复:
[quote=引用 1 楼 duanzi_peng 的回复:] 未能找到类型或命名空间名称“ManagementBaseObject”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementObjectCollection”(是否缺少 using 指令或程序集引用?) -》看你的代码从哪里来的,右键你的项目引用-》添加引用-》找到程序集中的System.Management dll 引用到项目中。
我最顶上名写了using System.Management;[/quote] 切换编译平台编译
tz034204tz 2017-09-28
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
未能找到类型或命名空间名称“ManagementBaseObject”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementObjectCollection”(是否缺少 using 指令或程序集引用?) -》看你的代码从哪里来的,右键你的项目引用-》添加引用-》找到程序集中的System.Management dll 引用到项目中。
我最顶上名写了using System.Management;
tz034204tz 2017-09-28
  • 打赏
  • 举报
回复
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.Runtime.InteropServices; using System.Management; using System.Net.NetworkInformation; using System.Text.RegularExpressions; 我已经using System.Management;
exception92 2017-09-28
  • 打赏
  • 举报
回复
添加引用dll是最基本要学会的操作。”缺少 using 指令或程序集引用“ 一般都没有引用dll文件。
exception92 2017-09-28
  • 打赏
  • 举报
回复
未能找到类型或命名空间名称“ManagementBaseObject”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementClass”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ManagementObjectCollection”(是否缺少 using 指令或程序集引用?) -》看你的代码从哪里来的,右键你的项目引用-》添加引用-》找到程序集中的System.Management dll 引用到项目中。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧