Как использовать Mono для Windows для доступа к WMI, чтобы получить аппаратный идентификатор? - PullRequest
0 голосов
/ 29 апреля 2010

В последнее время мне нужно запустить приложение winforms на моно для платформы Windows, но я использую WMI, чтобы получить MAC-адрес и идентификатор процессора в исходном коде, переключиться на Mono для Windows, он не работает. Я обнаружил, что API-интерфейсы System.Management.dll не реализованы в Mono.

Как мне это сделать? Как получить идентификатор процессора, MAC-адрес, серийный номер жесткого диска и серийный номер материнской платы без WMI?

1 Ответ

1 голос
/ 21 мая 2010

Я не ожидаю, что Mono когда-либо будет реализовывать код, который может взаимодействовать с WMI, поскольку это API для конкретной платформы. Если вы настраиваете свое программное обеспечение для работы в Windows, почему бы просто не использовать среду выполнения Microsoft .Net? Есть ли конкретная причина, по которой вы должны использовать Mono?

Самый простой ответ - просто использовать среду выполнения Microsoft, если можете, поскольку вы пишете код, не зависящий от платформы.

Если вы действительно должны использовать моно-среду выполнения и не можете использовать Microsoft System.Management.dll, я думаю, вы сможете получить то, что вы хотите, с помощью Interop Services. Mono может взаимодействовать с нативными библиотеками http://www.mono -project.com / Interop_with_Native_Libraries . Также WMI доступен через COM-интерфейсы, которые Mono также может сделать, поэтому вам может потребоваться пойти по этому пути. http://www.mono -project.com / COM

Ни Interop, ни COM не будут такими простыми, как просто использование System.Management.dll, но это альтернатива.

...