Ich wollte ein Programm erstellen, dass die Festplatten aufzählt. Das klappt zwar soweit, aber ich schaffe es nicht die Information zu updaten (wenn ein Speichermedium hinzugefügt wird , gelöscht wird oder sich der belegte Speicherplatz ändert)
Kleine Verbildlichung imgur.com/JvMaQvx
Erstmal der Code :
Folgende Funktionen sind noch vorhabenden :
und
Leider sind meine VB-Kentnisse nicht so ausgerägt(bin ja noch Schuüler), habe auch schon viel mich umgeguckt (z.B eine List zu machen), was aber alles fehlgeschlafen ist
Daraus ergibt sich meine Fragestellung : Wie kann ich auch Controls eingreifen, die ich per code generiert habe bezogen auf meinen Code.(Mit eingreifen meine ich edieren/löschen/hinzufügen)
Wenn es aber auch eine viel einfachere/andere Möglichkeit/Problemlösung gibt, diese Infos von Speichermedien darzustellen, dann würde ich es begrüßen diese auch zu erfahren.
Kleine Verbildlichung imgur.com/JvMaQvx
Erstmal der Code :
VB.NET-Quellcode
- Sub festplatte()
- Dim allDrives() As DriveInfo = DriveInfo.GetDrives()
- Dim d As DriveInfo
- Dim I As Integer
- For Each d In allDrives
- If d.IsReady = True Then
- Try
- ' Intelize controls
- Dim progressbar As ProgressBar = New ProgressBar
- Dim pbgroup As GroupBox = New GroupBox
- Dim info As Label = New Label
- Dim type As Label = New Label
- Dim format As Label = New Label
- Dim Space As Double = d.TotalFreeSpace / d.TotalSize
- ' Add to tab
- Me.Tab_M.Controls.Add(progressbar)
- Me.Tab_M.Controls.Add(pbgroup)
- Me.Tab_M.Controls.Add(info)
- Me.Tab_M.Controls.Add(type)
- Me.Tab_M.Controls.Add(format)
- ' Add to group
- pbgroup.Controls.Add(progressbar)
- pbgroup.Controls.Add(info)
- pbgroup.Controls.Add(type)
- pbgroup.Controls.Add(format)
- pbgroup.Text = d.Name & " | Name : " & CheckName(d.VolumeLabel.ToString())
- pbgroup.Size = New System.Drawing.Size(600, 65)
- pbgroup.Location = New System.Drawing.Point(8, I * 70 + 40)
- ' format
- format.AutoSize = True
- format.Name = "format" & I
- format.Location = New System.Drawing.Point(435, 36)
- format.Text = "Format : " & d.DriveFormat
- ' Typ
- type.AutoSize = True
- type.Name = "type" & I
- type.Location = New System.Drawing.Point(435, 16)
- type.Text = "Art : " & GetDriverFormat(d)
- ' info
- info.Name = "info" & I
- info.Location = New System.Drawing.Point(6, 16)
- info.AutoSize = True
- ' Info Text :: 1000 MB Grenze
- If d.TotalFreeSpace > Math.Pow(1024, 3) Then
- info.Text = "Benutzter Speicher beträgt : " & Math.Round((d.TotalSize - d.TotalFreeSpace) / btogb, 2) & " GB von " & Math.Round((d.TotalSize) / btogb, 2) & " GB (" & Math.Round(100 - Space * 100, 2) & " % )"
- Else
- info.Text = "Benutzter Speicher beträgt : " & Math.Round((d.TotalSize - d.TotalFreeSpace) / btomb, 2) & " MB von " & Math.Round((d.TotalSize) / btomb, 2) & " MB (" & Math.Round(100 - Space * 100, 2) & " % )"
- End If
- 'Progressbar
- progressbar.Size = New System.Drawing.Size(425, 23)
- progressbar.Location = New System.Drawing.Point(6, 32)
- progressbar.Name = "Memory" & I
- progressbar.Value = 100 - Space * 100
- Catch ex As Exception
- MsgBox(ex.ToString())
- End Try
- I += 1
- End If
- Next
- End Sub
Folgende Funktionen sind noch vorhabenden :
VB.NET-Quellcode
- Function GetDriverFormat(ByVal driver As DriveInfo) As String
- Select Case driver.DriveType
- Case DriveType.CDRom
- GetDriverFormat = "CDRom Laufwerk"
- Case DriveType.Fixed
- GetDriverFormat = "Festplatte"
- Case DriveType.Network
- GetDriverFormat = "Netzwerk"
- Case DriveType.NoRootDirectory
- GetDriverFormat = "Kein Rootpfad"
- Case DriveType.Ram
- GetDriverFormat = "Ram"
- Case DriveType.Removable
- GetDriverFormat = "Austauschbares Medium"
- Case DriveType.Unknown
- GetDriverFormat = "Unbekannt"
- End Select
- End Function
und
Leider sind meine VB-Kentnisse nicht so ausgerägt(bin ja noch Schuüler), habe auch schon viel mich umgeguckt (z.B eine List zu machen), was aber alles fehlgeschlafen ist
Daraus ergibt sich meine Fragestellung : Wie kann ich auch Controls eingreifen, die ich per code generiert habe bezogen auf meinen Code.(Mit eingreifen meine ich edieren/löschen/hinzufügen)
Wenn es aber auch eine viel einfachere/andere Möglichkeit/Problemlösung gibt, diese Infos von Speichermedien darzustellen, dann würde ich es begrüßen diese auch zu erfahren.