質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

9318閲覧

WiFiのSSIDを取得したい

ayumi0131

総合スコア17

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2016/12/26 13:26

#region Win32

public const uint WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES = 0x00000001; public const uint WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES = 0x00000002; public const uint ERROR_SUCCESS = 0; /// <summary> /// Gets SSIDs of available wireless LANs. /// </summary> /// <returns>SSIDs</returns> public static IEnumerable<string> GetAvailableNetworkSsids() { var clientHandle = IntPtr.Zero; var interfaceList = IntPtr.Zero; var availableNetworkList = IntPtr.Zero; try { uint negotiatedVersion; if (WlanOpenHandle( 2, // Client version for Windows Vista and Windows Server 2008 IntPtr.Zero, out negotiatedVersion, out clientHandle) != ERROR_SUCCESS) yield break; if (WlanEnumInterfaces( clientHandle, IntPtr.Zero, out interfaceList) != ERROR_SUCCESS) yield break; var interfaceInfoList = new WLAN_INTERFACE_INFO_LIST(interfaceList); foreach (var interfaceInfo in interfaceInfoList.InterfaceInfo) { if (WlanGetAvailableNetworkList( clientHandle, interfaceInfo.InterfaceGuid, WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES, IntPtr.Zero, out availableNetworkList) != ERROR_SUCCESS) continue; var networkList = new WLAN_AVAILABLE_NETWORK_LIST(availableNetworkList); foreach (var network in networkList.Network) { Debug.WriteLine("SSID: {1}", network.dot11Ssid ); yield return network.dot11Ssid.ToString(); } } } finally { if (availableNetworkList != IntPtr.Zero) WlanFreeMemory(availableNetworkList); if (interfaceList != IntPtr.Zero) WlanFreeMemory(interfaceList); if (clientHandle != IntPtr.Zero) WlanCloseHandle(clientHandle, IntPtr.Zero); } } }

}


上記のソースコードから
Wlan.GetAvailableNetworkSsids().ToArray();
でWiFiのSSIDの一覧を取得したいのですが表示されません。

ビルドエラー等は起きていません。

わかる方ご回答お願いいたします。

#endregion

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qt6hy

2016/12/27 03:22

具体的にどこでエラーになるとか、コードのどのようなパスを通っているかを示さないと、的確な回答が得られません。提示されたコードも 適切なコードブロックで表現しないと見づらいです。
guest

回答1

0

ベストアンサー

無線LANのSSIDをC#から取得する
とほぼ同じコードのようですね。

  • 実際にデバッグして、どこを通るか示してください。(丸投げはやめましょう!)
  • 管理者権限で実行するなど試されましたでしょうか?

投稿2016/12/27 03:24

編集2016/12/27 03:24
qt6hy

総合スコア149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問