ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 28.06.2001

Diese Seite wurde zuletzt aktualisiert am 28.06.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Raus und wieder rein...

Zurück...


Anzeige

(-hg) mailto:hg_openclosecd@aboutvb.de

Da ein CD-Laufwerk schließlich den Multimedia-Geräten zugerechnet wird, ist es kaum verwunderlich, dass eine Funktion zum Ein- und Ausfahren eines CD-Laufwerks im Multimedia-API zu finden ist. Allerdings mutet der Umgang mit der API-Funktion mciExecute ein wenig seltsam an. So muss der auszuführende Befehl im Klartext als String übermittelt werden. Und so will dieser String mit der Angabe des entsprechenden CD-Laufwerks erst einmal zusammengebaut werden. Ein Schwachpunkt der Funktion ist, dass sie keine vernünftige Fehlerbehandlung ermöglicht, falls etwa eine Laufwerksbezeichnung für ein Nicht-CD-Laufwerk angegeben worden ist, oder das Laufwerk aus irgendeinem Grund nicht bereit ist. Es werden lediglich dem Anwender nichtssagende Fehlermeldungen angezeigt, die sich offensichtlich nicht per Code unterdrücken lassen. Eine falsche Laufwerksbezeichnung können Sie immerhin vorab verhindern, indem Sie mittels der API-Funktion GetDriveType prüfen, ob es sich um ein CD-Laufwerk handelt. Mittels dieser Funktion können sie zudem auch ein CD-Laufwerk ermitteln. Näheres dazu finden Sie unter Der Typ ist gefragt"Der Typ ist gefragt".

Die folgende Funktion OpenCloseCD übernimmt diese Prüfungen und verwendet, falls kein Laufwerk angegeben und im optionalen Parameter FindFirstCDDrive True übergeben worden ist, das erste verfügbare CD-Laufwerk des Systems.

Als Laufwerksbezeichnung können Sie den Laufwerksbuchstaben alleine (Groß- oder Kleinbuchstabe), eine übliche Laufwerksbezeichnung mit Doppelpunkt, oder einen beliebigen Pfad auf der CD angeben. Beachten Sie, dass zur Prüfung des Laufwerksbuchstabens unabhängig von der Groß-/Kleinschreibung der Visual Basic-Operator Like verwendet wird und dazu die Vergleichsmethode des Moduls, in dem sich die Funktion befindet, auf Textvergleich (Option Compare Text) eingestellt wird.

Die weiter unten stehende Hilfsfunktion GetFirstCDDrive zur Ermittlung des ersten vorhandenen CD-Laufwerks können Sie natürlich auch für andere Zwecke verwenden.

Option Compare Text

Private Declare Function GetDriveType Lib "kernel32" _
 Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Declare Function mciExecute Lib "winmm.dll" _
 (ByVal lpstrCommand As String) As Long

Public Function OpenCloseCD(Optional Drive As String, _
 Optional ByVal OpenClose As Boolean = True, _
 Optional FindFirstCDDrive As Boolean) As Boolean

  Dim nDrive As String
  Dim nExec  As String
  Dim nAlias As String
  Dim nResult As Long
  
  Const DRIVE_CDROM = 5
  
  If FindFirstCDDrive Then
    nDrive = GetFirstCDDrive()
  Else
    nDrive = Trim$(Drive)
    If Len(nDrive) Then
      nDrive = Left$(nDrive, 1)
      If nDrive Like "[a-z]" Then
        If GetDriveType(nDrive & ":\") <> DRIVE_CDROM Then
          Exit Function
        End If
      End If
    End If
  End If
  If Len(nDrive) Then
    nAlias = "CDDrive" & nDrive
    nExec = "Open " & nDrive & ": Type CDAudio Alias " & nAlias
    nResult = mciExecute(nExec)
    If nResult Then
      If OpenClose Then
        nExec = "Set " & nAlias & " Door Open"
      Else
        nExec = "Set " & nAlias & " Door Closed"
      End If
      nResult = mciExecute(nExec)
      If nResult Then
        nExec = "Close " & nAlias
        nResult = mciExecute(nExec)
        OpenCloseCD = True
      End If
    End If
  End If
End Function

Public Function GetFirstCDDrive() As String
  Dim i As Integer
  Dim nCDDrive As String
  
  Const DRIVE_CDROM = 5
  
  For i = 65 To 90
    nCDDrive = Chr$(i) & ":\"
    If GetDriveType(nCDDrive) = DRIVE_CDROM Then
      GetFirstCDDrive = nCDDrive
      Exit For
    End If
  Next 'i
End Function

Beispiel-Projekt und Modul OpenCloseCD (openclosecd.zip - ca. 3,2 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer