2010-04-29 4 views
0

Récemment, j'ai besoin d'exécuter mon Winforms App sur mono pour la plate-forme Windows, Mais j'utilise WMI pour obtenir l'adresse MAC et l'ID CPU dans mon code original, basculer vers Mono pour Windows, ça ne fonctionne pas. J'ai trouvé que les API "System.Management.dll" ne sont pas implémentées dans Mono.Comment utiliser Mono pour Windows pour accéder à WMI pour obtenir l'ID de matériel?

Comment faire pour obtenir l'ID de l'UC, l'adresse MAC, le numéro de série du disque dur et le numéro de série de la carte mère sans WMI?

Répondre

1

Je ne m'attends pas à ce que Mono implémente un code capable de communiquer avec WMI puisqu'il s'agit d'une API spécifique à une plate-forme. Si vous souhaitez que votre logiciel fonctionne sous Windows, pourquoi ne pas simplement utiliser Microsoft .Net runtime? Y a-t-il une raison spécifique pour laquelle vous devez utiliser Mono?

La réponse la plus simple est simplement d'utiliser le moteur d'exécution de Microsoft si vous le pouvez puisque vous écrivez du code non indépendant de la plateforme.

Si vous devez vraiment utiliser l'exécution mono et ne pouvez pas utiliser l'implémentation Microsoft de System.Management.dll, je pense que vous pourriez obtenir ce que vous voulez en utilisant les services d'interopérabilité. Mono peut interagir avec les bibliothèques natives http://www.mono-project.com/Interop_with_Native_Libraries. WMI est également disponible par les interfaces COM que Mono peut également faire, vous devrez peut-être descendre cette route. Ni Interop ni COM ne sera aussi simple que d'utiliser System.Management.dll, mais c'est une alternative.

Questions connexes