我正在编写一个简单的客户端 - 服务器应用程序,作为人们使用我的网络连接到游戏服务器的界面。尝试使用WMI时出现'无效命名空间'错误
为此,我需要得到他们的硬盘驱动器的序列号作为唯一的ID,用于存储分数等,但但是当我试图访问的序列号的应用程序崩溃:
An unhandled exception of type 'System.Management.ManagementException' occurred in System.Management.dll
Additional information: Invalid namespace
我环顾四周,似乎没有太多的问题; one website提到'WMI就像死亡谷'一样,我倾向于同意这一点。
我采购我的代码从一个堆栈溢出问题,它在应用程序的第一个版本的工作(因为它与设计的几个问题,我报废了),那么,为什么不将它在第二个工作(新)版本的应用程序?
两个版本都使用相同的库和引用,并且都是Windows窗体应用程序,所以基本上它们是相同的。 似乎有什么也没有 Stack Overflow为此,这是不寻常的。
的错误发生在moHD.[Get]()
:
为什么会出现这个错误,我怎么能解决这个问题?
代码:
Public Function getSerial(ByVal strDrive As String) As String 'Get HD Serial Number
If strDrive = "" OrElse strDrive Is Nothing Then
strDrive = "C"
End If
Dim moHD As New ManagementObject("Win32_LogicalDisk.DeviceID=""" + strDrive + ":""")
moHD.[Get]()
Return moHD("VolumeSerialNumber").ToString()
End Function
我得到'类型'System.Management.ManagementPath'的值无法转换为'System.Management.ObjectGetOptions''错误。 – cybermonkey
立即尝试使用已编辑的代码。 – RRUZ
代码编译,但现在我回到原来的错误:http://puu.sh/eiaMp/33a2286671.png – cybermonkey