2017-02-20 37 views
-1

netsh API(WIN32 API、WDKなど)にアクセスする方法はありますか?例えば、私は次のコマンドでnetshを経由してモバイルブロードバンド情報を取得するために
をしようとしています。Windows SDKのメソッドを使用してnetsh mbn show interfacesの実際のプログラム的な表現は何ですか:Windows SDK経由でプログラムでnetsh APIにアクセスする方法

netsh mbn show interfaces 

だから私は、本当の問題があると思いますか?

擬似コードの例:

MBN_DEVICE mbn; 
GetMbnDev(&mbn); 
char* Name = mbn.Name; 
char* IMEI = mbn.IMEI; 
char* DeviceId = mbn.DevId; 
float signal = mbn.Signal; 

何のAPI(Win32の/ .NET/.Core)私は、コマンドと同じようにデータ構造で同じ結果を得るために呼び出す必要があります上記?

+0

はいnetsh' 'と同じAPIを使用する方法があります。 –

+0

'netsh.exe'は実行可能ファイルであり、直接的なC++ APIを提供しません。 C++プログラムの実行可能ファイルと対話するために、おそらくパイプを使用することができます。より一般的な方法は、winsock APIに直接アクセスすることです(または 'boost :: asio'のような抽象化によって)。 –

+0

@πάνταῥεthisこのインスタンスでは、netsh.exeは実際にC関数をエクスポートし、これらの関数はNAPMONTR.DLLによって呼び出されます。 – Anders

答えて

0

Microsoftツールの中には、内部/文書化されていないAPIを使用して作業を行っているものがあります。そのため、クローニングを頻繁に行う必要があります。

最初の手順はDependency Walkerをダウンロードして、netshのインポート関数を調べることです。この場合、ネットワーク関連のものを(Windows 8のマシンで)たくさんインポートするようには見えませんが、CoCreateInstanceGetProcAddressをインポートするので、両方のデバッガでブレークポイントを設定できるようになります。 /インターフェイス最終的に呼び出しを終了します。

これまでのところ、GoogleのモバイルブロードバンドAPIだけでも、this MSDN pageにつながるはずです。あなたはこれらのインタフェースを見て、彼らはあなたが後にある情報を提供するかどうかを確認する必要があり...

+0

'CoCreateInstance'にブレークポイントを設定すると、無駄になります。もちろん、インターフェイスポインタを返します。 *いくつかのインタフェースに。そして、v-tableへのインデックスだけで識別される*未知のメソッドをいくつか起動します。 – IInspectable

+0

最初に呼び出す必要があるのは 'IUnknown :: QueryInterface'です。それ以外の場合はCOMが動作しないため、vtable内のどこにあるかを知っているので、ドキュメント化されたCOMインターフェイスを使用しているかどうか(または少なくともマーシャリング情報があるインターフェイス)。 –

+0

@IInspectable確かに無駄ではありません。最初のパラメータからCLSIDを見つけることができます。あなたが幸運であれば、デバッガはこのCLSIDを知っています。もしそうでなければ、レジストリやインターネットでそれを探すことができます。それが助けにならない場合は、返されたインターフェイスで何が行われてもそれに従うことができます。最初の調査では、ドキュメント化されたものを使用しているかどうかを確認しようとしています。 – Anders

0

は私が右、このリンク上で答えを見つけました:https://social.msdn.microsoft.com/Forums/vstudio/en-US/2d810752-f647-41f6-9299-27b6adddd536/how-to-get-the-signal-strength-from-a-mobile-broadband-network-adapter-in-windows-7-using-c?forum=csharpgeneral

  • あなたにmbnapi_uuid.libを追加します。 C++プロジェクト(リンカー→入力→追加 依存関係)。
  • C#プロジェクトのためのCOMタブへの参照を追加します。「定義:MBNタイプライブラリのためのUCM拡張 API」
関連する問題