2011-11-30 50 views
4

我的學校使用802.11a,但在家使用802.11b。 這意味着每次我從家裏去學校或其他方式,我必須去設備管理器 - >網絡適配器 - >英特爾(R)WiFi Link 5100 AGN - >屬性 - >高級 - >無線模式 - >更改值。更改無線網絡適配器無線模式屬性

我想爲我做一個小型的c#程序,但我不知道從哪裏開始。

有人可以指出我正確的方向,我不知道從哪裏開始。

我收到了MSDN的答案 - 但我還沒有測試過它。 http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/3a8a096d-b0e8-488c-930f-12735e5f7b4b

SOLUTION 與這個有點工作後,我找到了解決辦法。 首先,我使用Process monitor來找出哪些註冊表值已更改,當我手動更改無線模式時。

現在更改該值包含2個步驟。 無線模式的名稱被映射到一個數字。然後將這些數字映射到不同的註冊表項中以指向無線模式號碼。 所以首先我找到了基於名稱的數字,然後我將該值設置爲不同的註冊表項。

之後,網絡適配器必須重置,我用WMI來做。

我在MSDN上得到This thread的幫助。

我不確定,如果它適用於所有的Windows操作系統,並且我不確定它是否適用於所有網絡適配器。無論如何,這就是我所做的。

+0

你可以發佈什麼是需要改變的價值嗎? – Rajesh

+0

我必須在以下值之間切換:1. 802.11a到6. 802.11a/b/g –

回答

1

用這款有點工作後,我找到了解決辦法。首先,我使用Process monitor來確定哪些註冊表值已更改,當我手動更改無線模式時。

現在更改該值包含2個步驟。無線模式的名稱被映射到一個數字。然後將這些數字映射到不同的註冊表項中以指向無線模式號碼。因此,首先我根據名稱找到數字,然後在不同的註冊表項中設置該值。

之後,網絡適配器必須重置,我用WMI來做。

我在MSDN的這個線程中得到了幫助。

我不確定,如果它適用於所有的Windows操作系統,並且我不確定它是否適用於所有網絡適配器。無論如何,這就是我所做的。

0

有一個API用於訪問所有WiFi網絡適配器。你可以在here找到它的源代碼。希望能讓你開始。

+0

我已經研究過這個問題,看起來好像本地WiFi API更多的是關於網絡連接而不是那麼多的硬件 –

1

要深入到System.Management命名空間來惹設備http://msdn.microsoft.com/en-us/library/system.management.aspx

+0

我已經看過它,但我找不到要找的房產。我已經試過如下: SELECT * FROM Win32_NetworkAdapterConfiguration的 SELECT * FROM Win32_NetworkAdapter SELECT * FROM Win32_NetworkClient SELECT * FROM Win32_NetworkConnection SELECT * FROM Win32_NetworkLoginProfile SELECT * FROM Win32_NetworkProtocol數據 –

+0

關於第二個想法,也許藏漢有可能,你必須「談」到你的適配器的驅動程序,而不是讓Windows完成這個任務......事實上,Windows不知道設備如何工作,驅動程序是這樣做的(這就是Windows需要它們的原因)。不幸的是,我不知道確切的B/C我從來沒有嘗試過這種東西:( – Alex

+0

我還沒有解決這個問題,但你給了我一個提示在哪裏看,這是問題的答案。謝謝 –