Nachdem es so viele Beispiele gibt, die nicht mehr aktuell sind oder böse Funktionen benutzen, oder einfach überhaupt nicht funktionieren, hab' ich mir erlaubt das kleine folgende Programm zusammen zu schrauben. Es zeigt nach Knopfdruck vorhandene CD/DVD-Laufwerke in einer Listbox an und öffnet/schließt die Lade, deren Laufwerksbuchstabe in einer Textbox angegeben ist.
Der Code läuft einwandfrei auf meinem Computer. Und er sollte absolut politisch korrekt ausgefallen sein.
Irgendwelche Anmerkungen dazu?
Spoiler anzeigen
Der Code läuft einwandfrei auf meinem Computer. Und er sollte absolut politisch korrekt ausgefallen sein.
Irgendwelche Anmerkungen dazu?
VB.NET-Quellcode
- 'Namespace Microsoft.VisualBasic abgeschaltet
- ' Option Explicit = on
- ' Option Strict = on'
- 'Option Infer = on
- ' Erforderlich Form 1 mit 4 Buttons, 1 Listbox, 1 Textbox
- Public Class Form1
- 'DLLImport für Aktion Lade auf/zu
- ' Dllimport von winmm.dll: Im Original ist bei 'buffer' ein Stringbuilder vorgesehen (pinvoke.net)
- <System.Runtime.InteropServices.DllImport("winmm.dll")> _
- Private Shared Function mciSendString(ByVal command As String, ByVal buffer As String, ByVal bufferSize As Integer, ByVal hwndCallback As IntPtr) As Integer
- End Function
- 'Schalter CD/DVD/BluRay-Laufwerke in Listbox auflisten
- Private Sub btnlist_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlist.Click
- For Each Drive As IO.DriveInfo In IO.DriveInfo.GetDrives
- If Drive.DriveType = IO.DriveType.CDRom Then
- If Drive.IsReady Then
- ListBox1.Items.Add(Drive.Name & " [" & Drive.VolumeLabel & "]")
- Else
- ListBox1.Items.Add(Drive.Name & " [Kein Medium/nicht bereit]")
- End If
- End If
- Next
- End Sub
- ' Schalter Öffnen
- Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnopen.Click
- If TextBox1.Text.Length > 0 Then
- Open_Tray(TextBox1.Text.Substring(0, 1), True)
- Else
- TextBox1.Text = "Kein Laufwerk gewählt"
- End If
- End Sub
- 'Schalter Schliessen
- Private Sub BtnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnclose.Click
- If TextBox1.Text.Length > 0 Then
- Open_Tray(TextBox1.Text.Substring(0, 1), False)
- Else
- TextBox1.Text = "Kein Laufwerk gewählt"
- End If
- End Sub
- 'Aktion Lade auf/zu
- Private Sub Open_Tray(ByVal Letter As String, ByVal Open As Boolean)
- Dim Drive As String = Letter.Substring(0, 1)
- Dim Action As String = String.Empty
- If Open Then ' Hier Select entfernt und If verwendet
- Action = " Door Open"
- Else
- Action = " Door Closed"
- End If
- 'Im Original ist in den folgenden
- mciSendString(String.Concat("Open ", Drive, ": Alias ", "Laufwerk", Drive, " Type CDAudio"), String.Empty, 0, IntPtr.Zero)
- mciSendString(String.Concat("Set ", "Laufwerk", Drive, Action), String.Empty, 0, IntPtr.Zero)
- End Sub
- 'Schalter beenden
- Private Sub btnende_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnende.Click
- Me.Close()
- End Sub
- End Class
Das Leben ist nicht so kompliziert. Eine süsse Erinnerung tut's.
Indiana Jocutus - Jäger des Variablen-Schatzes
Indiana Jocutus - Jäger des Variablen-Schatzes
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jocutus“ () aus folgendem Grund: Quellcode editiert - (wie von VincentTB erwähnt)