Здравствуйте!
Подскажите как в [c#] программно отключить устройство
от сети?
(CSWMIEnableDisableNetworkAdapter)
(Пример разработан и проверен для VS2010)
1. Конструктор NetworkAdapter class
internal class NetworkAdapter
{
#region NetworkAdapter Properties
/// <summary>
/// The DeviceId of the NetworkAdapter
/// </summary>
public int DeviceId
{
get;
private set;
}
/// <summary>
/// The ProductName of the NetworkAdapter
/// </summary>
public string Name
{
get;
private set;
}
/// <summary>
/// The NetEnabled status of the NetworkAdapter
/// </summary>
public int NetEnabled
{
get;
private set;
}
/// <summary>
/// The Net Connection Status Value
/// </summary>
public int NetConnectionStatus
{
get;
private set;
}
/// <summary>
/// The Net Connection Status Description
/// </summary>
public static string[] SaNetConnectionStatus =
{
Resources.NetConnectionStatus0,
Resources.NetConnectionStatus1,
Resources.NetConnectionStatus2,
Resources.NetConnectionStatus3,
Resources.NetConnectionStatus4,
Resources.NetConnectionStatus5,
Resources.NetConnectionStatus6,
Resources.NetConnectionStatus7,
Resources.NetConnectionStatus8,
Resources.NetConnectionStatus9,
Resources.NetConnectionStatus10,
Resources.NetConnectionStatus11,
Resources.NetConnectionStatus12
};
/// <summary>
/// Enum the NetEnabled Status
/// </summary>
private enum EnumNetEnabledStatus
{
Disabled = -1,
Unknow,
Enabled
}
/// <summary>
/// Enum the Operation reuslt of Enable and Disable Network Adapter
/// </summary>
private enum EnumEnableDisableResult
{
Fail = -1,
Unknow,
Success
}
#endregion
#region Construct NetworkAdapter
public NetworkAdapter(int deviceId,
string name,
int netEnabled,
int netConnectionStatus)
{
DeviceId = deviceId;
Name = name;
NetEnabled = netEnabled;
NetConnectionStatus = netConnectionStatus;
}
}
2. Этот код находит все адаптеры.
List<NetworkAdapter> allNetworkAdapter = new List<NetworkAdapter>();
string strWQuery = "SELECT DeviceID, ProductName, Description, "
+ "NetEnabled, NetConnectionStatus "
+ "FROM Win32_NetworkAdapter "
+ "WHERE Manufacturer <> 'Microsoft' ";
ObjectQuery oQuery = new System.Management.ObjectQuery(strWQuery);
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
foreach (ManagementObject mo in oReturnCollection)
{
netEnabled = (Convert.ToBoolean(mo["NetEnabled"].ToString())) ? 1 : -1;
allNetworkAdapter.Add(new NetworkAdapter(
Convert.ToInt32(mo["DeviceID"].ToString()),
mo["ProductName"].ToString(),
mo["Description"].ToString(),
netEnabled,
Convert.ToInt32(mo["NetConnectionStatus"].ToString())));
};
return allNetworkAdapter;
3. Этот код включает и выключает сетевой адаптер.
ManagementObject currentMObject = new ManagementObject();
string strWQuery = "SELECT DeviceID,ProductName,Description,NetEnabled "
+ "FROM Win32_NetworkAdapter "
+ "WHERE DeviceID = " + this.DeviceID.ToString();
ObjectQuery oQuery = new System.Management.ObjectQuery(strWQuery);
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();
foreach (ManagementObject mo in oReturnCollection)
{
currentMObject = mo;
}
//Enable the Network Adapter
currentMObject.InvokeMethod("Enable", null);
//Disable the Network Adapter
//currentMObject.InvokeMethod("Disable", null);
Оригинальная статья
Ресурс на MSDN(описание класса Win32_NetworkAdapter class)
Виртуальный выделенный сервер (VDS) становится отличным выбором
мне кажется нужен цикл с условием,только не знаю куда его вставить
Имеетсяtxt файл, в нем есть много строк, == длинны, строки могут повторятся, но не по очереди: не 1-я и 2-я == а скажем, 14-я и 49-я строка ==, Вопрос, как...
Добрый деньПодскажите как скормить двоичную команду функции SerialPort