[英]How to disable/enable network in Windows 8 by C#
此代碼適用於Windows 7,但不適用於Windows 8.有誰知道原因? 我不知道如何解決它。
private static void RestartNetWork()
{
string manage = "SELECT * FROM Win32_NetworkAdapter";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);
ManagementObjectCollection collection = searcher.Get();
List<string> netWorkList = new List<string>();
foreach (ManagementObject obj in collection)
{
if (obj["Name"].ToString() == "Qualcomm Atheros AR5B97 Wireless Network Adapter")
{
DisableNetWork(obj);//disable network
Thread.Sleep(3000);
EnableNetWork(obj);//enable network
return;
}
}
}
禁用網絡的功能
/// <summary>
/// 禁用網卡
/// </summary>5
/// <param name="netWorkName">網卡名</param>
/// <returns></returns>
private static bool DisableNetWork(ManagementObject network)
{
try
{
network.InvokeMethod("Disable", null);
return true;
}
catch
{
return false;
}
}
啟用網絡的功能
/// <summary>
/// 啟用網卡
/// </summary>
/// <param name="netWorkName">網卡名</param>
/// <returns></returns>
private static bool EnableNetWork(ManagementObject network)
{
try
{
network.InvokeMethod("Enable", null);
return true;
}
catch
{
return false;
}
}
假設您使用的是Win32_NetworkAdapter WMI類,請確保當前進程在提升模式下運行。 最重要的是,您可能希望避免捕獲像您正在執行的每個異常,而是分析可能拋出的最終異常,以獲取更多詳細信息。
我找到了我的評論的答案,並想分享給有類似問題的人...
我沒有“啟用”服務,而是將啟動模式更改為手動(如果您願意,也可以使用自動),這解決了我的問題。
ManagementBaseObject startMode = service.GetMethodParameters("ChangeStartMode");
startMode["startmode"] = "Manual";
service.InvokeMethod("ChangeStartMode", startMode, null);
這對我有用!
我的代碼在Windows 10中運行良好所以我認為win8可用,但請記住它需要管理員權限,請記住通過右鍵單擊運行管理員。 這是我的代碼:
if (manage["Name"].ToString() == "Realtek RTL8192DE Wireless LAN 802.11N PCI-E NIC MAC1")
{
Console.WriteLine(manage["Name"].ToString() + "\n");
try
{
//先enable再disable且要管理員權限執行
manage.InvokeMethod("Enable", null);
manage.InvokeMethod("Disable", null);
Console.WriteLine("設置成功");
}
catch
{
Console.WriteLine("設置失敗");
}
}
}
我剛才有同樣的問題。 事實證明,當我在Windows 8中以管理員身份運行相同的應用程序時,一切都開始正常運行。
不推薦使用Win32_NetworkAdapter。 對於Windows 8 / Server 2012和轉發,您需要使用MSFT_NetAdapter。 https://msdn.microsoft.com/en-us/library/hh968170(v=vs.85).aspx
聲明:“不推薦使用Win32_NetworkAdapter類。請改用MSFT_NetAdapter類。” https://msdn.microsoft.com/en-us/library/aa394216%28v=vs.85%29.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.