Bestimmte Sektoren von CD lesen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Infinity.

    Bestimmte Sektoren von CD lesen

    Hi

    Ich bin gerade dabei ein Tool (in VB.NET) zu programmieren, mit dem man Audiodateien konvertieren kann und möchte eben auch damit Audio-CD rippen können.

    Eigentlich funktioniert das ganze auch schon ganz gut, d.h. Infos über die einzelnen Tracks habe ich schon und auch bei welchem Sektor ein bestimmter Track anfängt und bei welchem er aufhört.
    Das ganze scheitert jetzt nur noch daran, eben diese Sektoren zu lesen.

    Ich habe schon die ReadFile Funktion (kernel32.dll) ausprobiert, aber das ganze hat nicht funktioniert. Irgendwas mache ich da falsch.

    Ich verwende ja auch DeviceIoControl und CreateFile was funktioniert, nur mit ReadFile habe ich Probleme.

    Also deswegen meine Frage: Wie ließt man bestimmte Sektoren vom CD-Laufwrk aus?

    Außerdem, wie schreibe ich dann das ganze in eine Datei? Ich bin während meiner Suche auch schon auf die Funktion WriteFile (ebenfalls kernel32.dll) gestoßen, aber vielleicht hat jemand noch eine bessere Idee.


    Ich wäre für jede Hilfe dankbar (auch in C#)!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Infinity“ ()

    Infinity schrieb:

    Wie ließt man bestimmte Sektoren vom CD-Laufwrk aus?

    ...auf jeden Fall nicht mit .NET-Bordmitteln.

    Schau dir am besten den Quellcode (C++) von CdEx (ein CD-Ripper) an: cdexos.svn.sourceforge.net/svn…dexos/cdex1/trunk/cdexos/
    Dort findest du die Funktion ReadCdRomSector() - wo diese definiert ist, musst du selbst herausfinden.

    Außerdem, wie schreibe ich dann das ganze in eine Datei?

    Nimm dazu den BinaryWriter aus dem Framework.
    Gruß
    hal2000

    Habe jetzt das Probelm gelöst

    Ja also dass das nichts mit .NET-Bordmitteln klappt war mir ja eigentlich klar.

    Habe mir auch schon bevor ich diesen Beitrag geschrieben habe mal den CDEx Quellcode angeschaut, bin damit aber nicht klar gekommen. Trotzdem danke für deine Hilfe.

    Naja die Lösung war dann nicht ReadFile, sondern ich habe gemerkt, dass ich das ganze mit DeviceIoControl machen muss.

    Und das mit dem BinaryWriter aus dem Framework klappt auch, schade dass man mit dem BinaryReader nicht Sektorenweise lesen kann.