Tôi gặp sự cố khi tôi cần bật thẻ đã bị tắt và người tìm kiếm trên WMI NetworkAdapter không trả lại đối tượng.Cách sử dụng C# để bật thẻ mạng không dây bị vô hiệu
Tôi có thể nghĩ ra một cách có thể để làm điều này nhưng tôi không thể làm cho nó hoạt động, đó là tạo một managedObject sử dụng tên này làm tên hàm dựng. nhưng điều này chỉ ném ngoại lệ
{\\.\root\CIMV2:Win32_NetworkAdapter.NetConnectionID='Wireless Network Connection'}
Một cách khác là để bao một netsh và cho phép các thiết bị, mà là loại xấu xí, hoặc sử dụng shell32/dll "Bật" để làm như vậy, một lần nữa, cả hai chỉ truyền tên. Tôi đã nhận được tên từ một đăng ký quét trên HKLM\SYSTEM\CurrentControlSet\Network
và tìm kiếm MediaType = 2 để có được một danh sách chuỗi các thiết bị không dây. Tất cả đều tốt nếu tôi chạy ứng dụng trong khi bộ điều hợp được bật vì tôi có thể lấy networkObject cho thiết bị không dây nhưng tất cả đều đổ xuống nếu ứng dụng khởi động trong khi thiết bị không dây bị tắt.
Cảm ơn
Edit:. Đây là đoạn code mà tôi rất thích làm việc nhưng không đi :(
using System;
using System.Management;
class Sample
{
public static int Main(string[] args)
{
ManagementObject mObj = new ManagementObject("\\\\.\\root\\CIMV2:Win32_NetworkAdapter.NetConnectionID=\"Wireless Network Connection\"");
mObj.InvokeMethod("Enable", null);
return 0;
}
}
Cảm ơn bạn đã trả lời! Những gì tôi không thể có vẻ để làm cho nó là Bật một adapter bị vô hiệu hóa như là một tìm kiếm không trả lại bất cứ điều gì cho một thiết bị vô hiệu hóa. Vô hiệu hóa thiết bị thực sự dễ dàng nhưng cho phép một thiết bị mà bạn không thể có được đối tượng, là bit mà Im gặp sự cố. Lý tưởng nhất, đây là những gì tôi đang cố gắng để làm việc – pedigree
Vâng, nếu bạn truy vấn giao diện chính xác nó sẽ cho phép bạn thực hiện trong phương thức 'enable'. Liệu nó không, khi tôi thử nó- nó hoạt động. – Greg
@Grey - bạn có tắt chức năng không dây (trong trình quản lý thiết bị) trước khi gọi không? Nếu vậy, bạn đang sử dụng hệ điều hành/.NET nào? – pedigree