2

FireBreath プラグインで、Wifi SSID を特定したり、目に見える Wi-Fi アクセス ポイントをスキャンしたりしようとしています。

コードの Windows 部分では、次のように開始する必要があります。

dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient);

残念ながら、dwResultは常に 1062 を返します。これは、「サービスが開始されていません」(経由FormatMessage()) に変換されます。

メインスレッドと、次のように開始されたブーストスレッドで実行しようとしました:

boost::thread t(boost::bind(&LaasTechAPI::doSomethingTimeConsuming_thread, this, num, callback));

エラー1062は関係なく同じです。

(ちなみに、私はスレッド方法論を実装しました。これは、a. インターネット検索がある種の ATL/MTL の「アパートメント」スレッド化の問題を示していることと、b. Wifi スキャンが本質的に遅い非同期処理であることが知られているため、スレッド化が最初から必要であると思われたためです)

この WlanOpenHandle エラー 1062 の問題を解決する方法を誰か教えてもらえますか?


セカンダリ:

  • Windows でローカル アクセス ポイントの Wifi SSID、BSSID、および信号強度をスキャンする、より信頼性の高い方法を教えてください。
  • また、OS X の Wifi 情報も収集する必要があります。そのため、Wifi スキャン用の Mac またはマルチプラットフォーム ソリューションを知っている場合は、共有してください。

ありがとうございました!

4

1 に答える 1

2

Windows ゼロ構成サービス (WZC) を開始する方法

これにより、Windows エラー 1062: "サービスが開始されていません" が解決されます。

@Georg のコメントを詳しく見て、WZC が開始されていることを確認する必要があると思います。彼のリンクのコメント セクションからの関連テキストは次のとおりです

Wireless Zero Configuration (WZC) サービスが開始されていない場合、または WZC サービスが応答しない場合、WlanOpenHandle はエラー メッセージを返します。

Windows コマンド プロンプト (DOS) でサービスを有効にします。

> net start wzcsvc

または、次のように入力します。

> sc config wzcsvc start= <boot|system|auto|demand|disabled|delayed-auto>

ヘルプ メッセージ:

> sc config /?

または、サービス アプリを開きます。

> services.msc
于 2013-03-28T15:47:17.373 に答える