相关的.NET 基类 和 win32 api 均可
解决方案 »
- 关于打印的bug!!!!!!!!!!!!!!!!
- 怎么关闭FORM窗口
- 一个本地文件把它压缩以后上传保存到sql数据库,数据库中字段的类型是Image类型的(二进制)。怎么压缩上传啊?又怎么从数据库中把它读取出来。保存到数据库中了。怎么把它取出来放到本地啊。谁有调试通过的代码?兄弟急等啊
- C#网络编程高手请进
- 新手问题,可能不算难
- 求助 在vs2003中构建dll文件和析构函数应用问题
- 关于C#设置IE可信站点的问题
- remoting应用程序开发上速度的讨论!
- 请问大侠,winform 如何控制在不同分辨率下的窗体位置呢?
- 编码问题
- 求助:急求啊!!怎样在C#更新SQL数据库啊
- 在水晶报表中怎么给子报表设置参数?100分...
用System.Diagnostics.Process.Start在程序中執行此命令就可以了.
例如:
System.Diagnostics.Process.Start("net.exe", "Send machineName msg")
不過netsh需多次執行,所以就好的辦法是在程序中先產生一個批文件,然後執行此批文件就好.
using System.Management; namespace egxsun
{
/// <summary>
/// ChangeIP 的摘要说明。
/// </summary>
public class ChangeIP
{ /// <summary>
/// Build of ArLi 2003.6.3
/// </summary>
public static readonly System.Version myVersion = new System.Version(1,1); private ManagementBaseObject iObj = null;
private ManagementBaseObject oObj = null;
private ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
private readonly ManagementObjectCollection moc; /// <summary>
/// example:
/// <code>
/// ArLi.CommonPrj.ChangeIP o = new ArLi.CommonPrj.ChangeIP();
/// string[] ipList = new string[]{"192.168.0.253","192.168.0.250"};
/// string[] subnetList = new string[]{"255.255.255.0","255.255.255.0"};
/// o.ChangeTo(ipList,subnetList);
/// </code>
/// </summary>
public ChangeIP()
{
moc = mc.GetInstances();
} /// <summary>cortrol</summary>
/// <param name="ipAddr">IPAddr List</param>
/// <param name="subnetMask">subnetMask List</param>
public void ChangeTo(string[] ipAddr,string[] subnetMask)
{
foreach(ManagementObject mo in moc)
{
if(! (bool) mo["IPEnabled"]) continue; iObj = mo.GetMethodParameters( "EnableStatic" );
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null);
}
} /// <summary>cortrol</summary>
/// <param name="ipAddr">IPAddr List</param>
/// <param name="subnetMask">subnetMask List</param>
/// <param name="gateways">gateway List</param>
/// <param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>
public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric)
{
foreach(ManagementObject mo in moc)
{
if(! (bool) mo["IPEnabled"]) continue; iObj = mo.GetMethodParameters("EnableStatic");
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null); iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateways;
//iObj["GatewayCostMetric"] = gatewayCostMetric;
oObj = mo.InvokeMethod("SetGateways", iObj, null);
}
} /// <summary>cortrol</summary>
/// <param name="ipAddr">IPAddr List</param>
/// <param name="subnetMask">subnetMask List</param>
/// <param name="gateways">gateway List</param>
/// <param name="gatewayCostMetric">gateway CostMetric List, example: 1</param>
/// <param name="dnsServer">DNSServer List</param>
public void ChangeTo(string[] ipAddr, string[] subnetMask, string[] gateways, string[] gatewayCostMetric, string[] dnsServer)
{
foreach(ManagementObject mo in moc)
{
if(! (bool) mo["IPEnabled"]) continue; iObj = mo.GetMethodParameters("EnableStatic");
iObj["IPAddress"] = ipAddr;
iObj["SubnetMask"] = subnetMask;
oObj = mo.InvokeMethod("EnableStatic", iObj, null); iObj = mo.GetMethodParameters("SetGateways");
iObj["DefaultIPGateway"] = gateways;
iObj["GatewayCostMetric"] = gatewayCostMetric;
oObj = mo.InvokeMethod("SetGateways", iObj, null); iObj = mo.GetMethodParameters("SetDNSServerSearchOrder");
iObj["DNSServerSearchOrder"] = dnsServer;
oObj = mo.InvokeMethod("SetDNSServerSearchOrder", iObj, null);
}
} /// <summary>DHCPEnabled</summary>
public void EnableDHCP()
{
foreach(ManagementObject mo in moc)
{
if(! (bool) mo["IPEnabled"]) continue; if(! (bool)mo["DHCPEnabled"])
{
iObj = mo.GetMethodParameters("EnableDHCP");
oObj = mo.InvokeMethod("EnableDHCP", iObj, null);
}
}
}
} }