-1

I'm trying to get Volume Serial Number using Visual Basic 2010,

Is there a whole code example that shows me how to do this?

Thanks

user2333346
  • 1,083
  • 4
  • 21
  • 40

2 Answers2

3

I guess the simplest answer to my question was given by:

Hans Passant: From his link,

I just copied and pasted this function and it works for Microsoft Visual basic 2010 express, Without any modifications

Public Function GetDriveSerialNumber() As String
    Dim DriveSerial As Long
    Dim fso As Object, Drv As Object
    'Create a FileSystemObject object
    fso = CreateObject("Scripting.FileSystemObject")
    Drv = fso.GetDrive(fso.GetDriveName(AppDomain.CurrentDomain.BaseDirectory))
    With Drv
        If .IsReady Then
            DriveSerial = .SerialNumber
        Else    '"Drive Not Ready!"
            DriveSerial = -1
        End If
    End With
    'Clean up
    Drv = Nothing
    fso = Nothing
    GetDriveSerialNumber = Hex(DriveSerial)
End Function

I would like to thank everyone for their help,

And i apologize for repeating the question, I did do a google search and a stackflow search, But my search was" "get hard drive serial number in visual basic 2010"

So this website did not show up,

Thanks again

user2333346
  • 1,083
  • 4
  • 21
  • 40
1

This thread here http://social.msdn.microsoft.com/Forums/vstudio/en-US/43281cfa-51c8-4c35-bc31-929c67abd943/getting-drive-volume-serial-number-in-vb-2010 has the following bit of code that you could use/adapt.

I made a piece of code for you to show all drive information.

The Volume serial number is included you can get that by simple putting some more if's in the code

Imports System.Management
Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim drivetype() As String = {"Unknown", "NoRootDirectory", _
    "RemoveableDisk", "LocalDisk", "NetworkDrive", "CompactDisk", "RamDisk"}
    Dim allDrives() As String = Environment.GetLogicalDrives()
    For Each drive In allDrives
      Dim win32Drive As String = _
      "Win32_LogicalDisk='" & drive.Substring(0, 2) & "'"
      Dim Disk As System.Management.ManagementObject _
      = New System.Management.ManagementObject(win32Drive)
      Me.ListBox1.Items.Add(drive.ToString & drivetype(CInt((Disk("DriveType").ToString))))
      For Each diskProperty In Disk.Properties
        If Not diskProperty.Value Is Nothing Then
          Me.ListBox1.Items.Add("---" & diskProperty.Name & "=" & diskProperty.Value.ToString)
        End If
      Next
    Next
  End Sub
End Class
Dijkgraaf
  • 11,049
  • 17
  • 42
  • 54
  • Does this work on visual basic 2010? I’m getting an error for System.Management.ManagementObject, It says Type “System.Management.ManagementObject” is not defined! Thanks – user2333346 Sep 03 '13 at 23:47
  • Microsoft Visual basic 2010 express – user2333346 Sep 03 '13 at 23:51
  • You have to add System.Management as a reference (see this thread http://stackoverflow.com/questions/4314630/managementobject-class-not-showing-up-in-system-management-namespace) – Dijkgraaf Sep 04 '13 at 00:00