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 06.12.2000

Diese Seite wurde zuletzt aktualisiert am 06.12.2000
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...

"Bitte CD einlegen!"

Zurück...


Anzeige

(-hg) mailto:hg_requestdatacd@aboutvb.de

Wenn Ihre Anwendung Daten und/oder Dateien benötigt, die nicht zusammen mit der Anwendung lokal auf der Festplatte installiert werden sollen, sondern separat auf einer CD zur Verfügung gestellt werden, müssen Sie vor jedem Zugriff auf diese Daten sicherstellen, dass die CD in ein CD-Laufwerk des betreffenden Rechners eingelegt ist. Zwar wäre die Möglichkeit, beim Setup von einer CD das Installationslaufwerk beispielsweise in der Windows-Registrierung festzuhalten. Doch zum einen lässt sich der einem CD-Laufwerk zugeordnete Laufwerksbuchstabe nachträglich vom Anwender leicht ändern. Außerdem ist es heutzutage auch nicht mehr ungewöhnlich, dass ein Rechner über mehrere CD-Laufwerke verfügt (etwa einfaches CD-Laufwerk nebst CD-Brenner), so dass sich die Daten-CD später auch in einem anderen Laufwerk befinden kann.

Am besten ist es daher, vor dem Zugriff auf eine auf einer CD erwartete Datei nicht nur zu prüfen, ob die CD eingelegt ist, sondern auch zugleich den Laufwerksbuchstaben des CD-Laufwerks zu ermitteln.

Ob ein Laufwerk ein CD-Laufwerk ist, finden Sie mit Hilfe der API-Funktion MSDN Library - API GetDriveTypeGetDriveType heraus (siehe auch Der Typ ist gefragt"Der Typ ist gefragt"). Sie prüfen in einer Schleife alle möglichen Laufwerkbuchstaben (von C bis Z) - ist ein Laufwerk ein CD-Laufwerk, prüfen Sie, ob eine bestimmte Datei auf der CD vorhanden ist. Wird die Datei gefunden, haben Sie damit sowohl die Bestätigung als auch den Laufwerkbuchstaben. Ist in dem Laufwerk keine CD eingelegt, löst die Prüfung auf das Vorhandensein der Datei einen Laufzeitfehler aus. In diesem Fall werden einfach die nächsten, verbleibenden Laufwerkbuchstaben getestet. War die Suche erfolglos, können Sie den Anwender auffordern, die gewünschte CD in ein CD-Laufwerk einzulegen und die Suche erneut zu starten. Sie sollten jedoch dem Anwender die Chance geben, auf das Einlegen der CD zu verzichten (und damit die Suche abzubrechen) und anschließend in ihrem Code entsprechend fortfahren.

Die Hilfsfunktion TestForDataCD sucht nach einem CD-Laufwerk, in dem sich eine CD mit einer bestimmten Datei befindet. Im Erfolgsfalle gibt sie den Pfad zum Wurzelverzeichnis der CD zurück, anderenfalls einen leeren String.

Private Declare Function GetDriveType Lib "kernel32" _
 Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Public Function TestForDataCD(TestFile As String) As String
  Dim nDrive As String
  Dim i As Integer
  Dim nTest As String
  
  Const DRIVE_CDROM = 5

  On Error Resume Next
  For i = 67 To 90
    nDrive = Chr$(i) & ":\"
    If GetDriveType(nDrive) = DRIVE_CDROM Then
      nTest = Dir(nDrive & TestFile)
      If Len(nTest) Then
        TestForDataCD = nDrive
        Exit Function
      End If
    End If
  Next 'i
End Function

Die Funktion RequestDataCD prüft über die vorstehende Funktion TestForDataCD, ob eine bestimmte CD eingelegt ist. Wird die CD nicht gefunden, übernimmt sie die Aufforderung (deren Text Sie im Parameter Message übergeben) an den Anwender, die betreffende CD einzulegen. Die Aufforderung wird so lange wiederholt, bis entweder die CD gefunden wird, oder bis der Anwender in der MessageBox die Abbrechen-Schaltfläche betätigt. Auch diese Funktion gibt entweder den Pfad zum Wurzelverzeichnis der CD oder aber einen leeren String zurück.

Public Function RequestDataCD(TestFile As String, _
 Message As String, Optional Title As String) As String

  Dim nTitle As String
  Dim nDrive As String
  
  If Len(Title) = 0 Then
    nTitle = App.Title
  Else
    nTitle = Title
  End If
  Do
    nDrive = TestForDataCD(TestFile)
    If Len(nDrive) Then
      RequestDataCD = nDrive
      Exit Function
    Else
      If MsgBox(Message, vbRetryCancel Or vbExclamation, nTitle) _
       = vbCancel Then
        Exit Function
      End If
    End If
  Loop
End Function

Modul modRequestDataCD (modRequestDataCD.bas - ca. 1,4 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