2010-04-29 1 views
0

최근 Windows 플랫폼 용 mono에 내 winforms 응용 프로그램을 실행해야하지만 WMI를 사용하여 Windows 용 Mono로 전환 한 원래 코드에서 MAC 주소와 CPU ID를 얻고 있습니다. 작동하지 않습니다. "System.Management.dll"API가 Mono에 구현되어 있지 않습니다.Windows 용 Mono를 사용하여 WMI에 액세스하여 하드웨어 ID를 얻는 방법은 무엇입니까?

어떻게해야합니까? WMI가없는 CPU ID, MAC 주소, 하드 디스크 일련 번호 및 마더 보드 일련 번호를 얻는 방법은 무엇입니까?

답변

1

Mono는 플랫폼 관련 API이므로 WMI와 통신 할 수있는 코드를 구현할 것이라고 기대하지 않습니다. Windows에서 실행되도록 소프트웨어를 타겟팅하는 경우 Microsoft .Net 런타임을 사용하지 않는 이유는 무엇입니까? 모노를 사용해야하는 특별한 이유가 있습니까?

가장 간단한 대답은 비 플랫폼 독립적 인 코드를 작성한 이후로 가능한 경우 Microsoft 런타임을 사용하는 것입니다.

모노 런타임을 사용해야하고 System.Management.dll의 Microsoft 구현을 사용할 수없는 경우 Interop Services를 사용하여 원하는 것을 얻을 수 있다고 생각합니다. 모노는 기본 라이브러리 http://www.mono-project.com/Interop_with_Native_Libraries과 상호 작용할 수 있습니다. 또한 Mono가 할 수있는 COM 인터페이스에서 WMI를 사용할 수 있으므로 해당 경로를 사용해야 할 수도 있습니다. http://www.mono-project.com/COM

Interop와 COM은 System.Management.dll을 사용하는 것만 큼 쉽지는 않지만 대안입니다.

관련 문제