0

最近、Windows プラットフォーム用の mono で winforms アプリを実行する必要がありますが、元のコードで WMI を使用して MAC アドレスと CPU ID を取得しています。Mono for Windows に切り替えても機能しません。「System.Management.dll」API が Mono に実装されていないことがわかりました。

どうすればいいですか?WMI を使用せずに CPU ID、MAC アドレス、ハードディスクのシリアル番号、およびマザーボードのシリアル番号を取得するにはどうすればよいですか?

4

1 に答える 1

1

これはプラットフォーム固有のAPIであるため、MonoがWMIと通信できるコードを実装することはないと思います。ソフトウェアをWindowsで実行することを目標としている場合は、Microsoft .Netランタイムを使用してみませんか?モノを使わなければならない特別な理由はありますか?

最も簡単な答えは、プラットフォームに依存しないコードを記述しているため、可能であればMicrosoftランタイムを使用することです。

本当にモノラルランタイムを使用する必要があり、System.Management.dllのMicrosoft実装を使用できない場合は、InteropServicesを使用して必要なものを取得できる可能性があると思います。Monoはネイティブライブラリhttp://www.mono-project.com/Interop_with_Native_Librariesと対話できます。また、WMIは、Monoでも実行できるCOMインターフェイスで使用できるため、そのルートをたどる必要がある場合があります。http://www.mono-project.com/COM

InteropもCOMも、System.Management.dllを使用するほど簡単ではありませんが、代替手段です。

于 2010-05-21T12:55:05.163 に答える