需要引用如下命名空间
using NETCONLib;//该DLL需要下载
using System.Diagnostics;
开启或关闭某个网口
/// <summary>
/// 开启或者关闭某个网口
/// </summary>
/// <param name="vIsOpen">是否开启</param>
/// <param name="vNetName">网口名称</param>
/// <returns></returns>
public static bool EnableOneNetAccess(bool vIsOpen, string vNetName)
{
try
{
NetSharingManagerClass netSharingMgr = new NetSharingManagerClass();
INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection;
foreach (INetConnection connection in connections)
{
INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection);
if (connProps.MediaType == tagNETCON_MEDIATYPE.NCM_LAN)
{
if (connProps.Name != vNetName)
{
continue;
}
if (vIsOpen)
{
if (connProps.Status == tagNETCON_STATUS.NCS_CONNECTED || connProps.Status == tagNETCON_STATUS.NCS_CONNECTING)
{
return true;
}
connection.Connect();
}
else
{
if (connProps.Status == tagNETCON_STATUS.NCS_DISCONNECTED || connProps.Status == tagNETCON_STATUS.NCS_DISCONNECTING)
{
return true;
}
connection.Disconnect();
}
return true;
}
}
return false;
}
catch
{
return false;
}
}
开启或关闭所有网口
/// <summary>
/// 开启或者关闭所有网口
/// </summary>
/// <param name="vIsOpen">是否开启</param>
/// <returns></returns>
public static bool EnableAllNetAccess(bool vIsOpen)
{
try
{
NetSharingManagerClass netSharingMgr = new NetSharingManagerClass();
INetSharingEveryConnectionCollection connections = netSharingMgr.EnumEveryConnection;
foreach (INetConnection connection in connections)
{
INetConnectionProps connProps = netSharingMgr.get_NetConnectionProps(connection);
if (connProps.MediaType == tagNETCON_MEDIATYPE.NCM_LAN)
{
if (vIsOpen)
{
if (connProps.Status == tagNETCON_STATUS.NCS_CONNECTED || connProps.Status == tagNETCON_STATUS.NCS_CONNECTING)
{
continue;
}
connection.Connect(); //启用网络
}
else
{
if (connProps.Status == tagNETCON_STATUS.NCS_DISCONNECTED || connProps.Status == tagNETCON_STATUS.NCS_DISCONNECTING)
{
continue;
}
connection.Disconnect(); //禁用网络
}
}
}
return true;
}
catch
{
return false;
}
}
开启或者关闭某个服务
/// <summary>
/// 开启或者关闭某个服务
/// </summary>
/// <param name="vIsOpen"></param>
/// <param name="vWinsServiceName"></param>
/// <returns></returns>
public static bool EnableWinService(bool vIsOpen, string vWinsServiceName)
{
try
{
using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController(vWinsServiceName))
{
if (vIsOpen)
{
if (control.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
{
control.Start();
}
}
else
{
if (control.Status == System.ServiceProcess.ServiceControllerStatus.Running)
{
control.Stop();
}
}
}
return true;
}
catch
{
return false;
}
}