我帶着ILSpy(http://ilspy.net/)一看就System.IO.DriveInfo類,我想通了 這個代碼,似乎很好地工作:
'------------------------------------------------------
' Declaration found in Microsoft.Win32.Win32Native
'------------------------------------------------------
Friend Declare Auto Function GetVolumeInformation Lib "kernel32.dll" (drive As String, <Out()> volumeName As StringBuilder, volumeNameBufLen As Integer, <Out()> ByRef volSerialNumber As Integer, <Out()> ByRef maxFileNameLen As Integer, <Out()> ByRef fileSystemFlags As Integer, <Out()> fileSystemName As StringBuilder, fileSystemNameBufLen As Integer) As Boolean
'------------------------------------------------------
' Test in my Form class
'------------------------------------------------------
Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
Try
Dim volumeName As StringBuilder = New StringBuilder(50)
Dim stringBuilder As StringBuilder = New StringBuilder(50)
Dim volSerialNumber As Integer
Dim maxFileNameLen As Integer
Dim fileSystemFlags As Integer
If Not GetVolumeInformation("C:\", volumeName, 50, volSerialNumber, maxFileNameLen, fileSystemFlags, stringBuilder, 50) Then
Dim lastWin32Error As Integer = Marshal.GetLastWin32Error()
MsgBox("Error number:" & lastWin32Error)
Else
MsgBox(volSerialNumber.ToString("X"))
End If
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub
我不明白。您已經提供了答案的鏈接。這是你非常喜歡的截圖底部的文章。什麼是關於C++的「無聊」? – 2011-04-15 11:32:35
更重要的是,爲什麼這麼多人需要找出我的硬盤的序列號?這個問題被問了很多(你已經發現至少有3個重複項),考慮到*絕對沒有有效的用例*。卷序列號是你可能*關心的唯一的東西;這是唯一重要的事情。 – 2011-04-15 11:33:36
因爲我嘗試但不能在C#中實現它.....我和我使用硬盤序列號爲我們的應用程序,它只能在客戶端PC上運行,如果它發現我們的可執行數據庫中的客戶端PC的硬盤序列號應用程序.....在短,它匹配數據庫中的硬盤序列號1和從客戶端PC獲得運行時.........如果發現比我們的應用程序運行......... – Pritesh 2011-04-15 11:42:36