Wie kann man mit Nero und C# eine CD/DVD Brennen???



  • Der Artikel ist auf jeden Fall mal gut für Leute, die mit Nero und C# eine CD brennen wollen. 👍 Für mich ist er jetzt ein bisschen zu speziell. 😉



  • Wenn man allerdings schon Nero hat, kann man auch ohne C# eine CD brennen 🙂



  • O'Dog schrieb:

    Wenn man allerdings schon Nero hat, kann man auch ohne C# eine CD brennen 🙂

    Ja, aber wenn du ein Programm entwickelst und du weißt das auf dem Zielrechner Nero ist kannst du Backups oder sonstiges automatisch wegbrennen 😉



  • Hi,

    mich würde mal interessieren, ob man das ganze auch mit C++ realisieren kann?



  • Ja, dies geht ebenfalls.
    Wenn ich es noch richtig in Erinnerung habe ist sogar ein beispiel für C++ in dem NeroSDK dabei.
    http://www.nero.com/nero7/deu/SDK_API.html



  • Der aktuelle Link zum SDK lautet:

    http://www.nero.com/deu/downloads-sdk.html



  • Hi zusammen, habe es nach der Anleitung versucht, aber ich bekomme es nicht hin. Mein Code sieht wie folgt aus. Ich nutze .Net und er gibt mir auch beim kompilieren keine Fehlermeldung aus, er startet das Programm so wie es sein soll, doch wenn ich den Brenner in der Liste auswähle und auf "Dateien brennen" klick, springt die progressbar sofort auf 100% und er wirft die CD aus. Auf der CD ist aber KEIN inhalt.

    Bei Schritt 4. der Anleitung:

    4. Als nächstes öffnen wir die Datei „nerolib.il“ mit einem Texteditor und suchen
    nach Suchbegriff „_SinkHelper“.
    Der erste Punkt den wir finden sollte
    .class private auto ansi sealed _INeroEvents_SinkHelper
    extends [mscorlib]System.Object
    implements NEROLib._INeroEvents
    sein.
    Hier ändern wir das private nun zum public. Anschließend suchen wir weiter
    nach Klassen die die Endung _SinkHelper haben und führen die Selbe
    Änderung dort ebenfalls durch!!!

    hier ist mir aufgefallen, dass die klassen bei mir schon public waren.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace brennen
    {
        public partial class Form1 : Form
        {
            private System.Windows.Forms.Button btn_brennen;
            private System.Windows.Forms.ComboBox cmb_brennerauswahl;
            private System.Windows.Forms.ProgressBar prgbar_fortschritt;
            private NEROLib.NeroClass neroclass = new NEROLib.NeroClass();
            private NEROLib.NeroDrivesClass ndrives;
            private NEROLib.NeroDrive ndrive;
    
            public Form1()
            {
                InitializeComponent();
                GetRecoderList();
                prgbar_fortschritt.Value = 0;
    
            }
    
            private void GetRecoderList()
            {
    
      // Ermittle alle Laufwerke mit der Eigenschaft (sieheMedia_type)
                ndrives = (NEROLib.NeroDrivesClass)neroclass.GetDrives(NEROLib.NERO_MEDIA_TYPE.NERO_MEDIA_CD);
    
                foreach (NEROLib.NeroDrive ndrive in ndrives) // Alle Ermittelten Laufwerke in der ComboBox anlegen
                {
                    // Laufwerkname in der ComboBox anlegen
                    cmb_brennerauswahl.Items.Add(ndrive.DeviceName);
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
    
            private void btn_brennen_Click(object sender, EventArgs e)
            {
                 // Neuen ISO Track erstellen
                    NEROLib.NeroISOTrackClass niso = new
                    NEROLib.NeroISOTrackClass();
    
                // ISO Track Namen geben
                    niso.Name = "TEST-CD";
    
                // Neues Verzeichnis erstellen
                NEROLib.NeroFolderClass nfolder = new
                NEROLib.NeroFolderClass();
    
                // Zweites Verzeichnis erstellen
                NEROLib.NeroFolderClass nsecondfolder = new
                NEROLib.NeroFolderClass();
    
                // Verzeichnis Namen geben
                nsecondfolder.Name = "TestFolder";
    
                // Verzeichnis zwei dem RootVerzeichnis hinzufügen
                nfolder.Folders.Add(nsecondfolder);
    
                // Root Folder dem ISO Track hinzufügen
                niso.RootFolder = nfolder;
    
                // Zwei Dateien erstellen
                NEROLib.NeroFileClass nfile1 = new NEROLib.NeroFileClass();
                NEROLib.NeroFileClass nfile2 = new NEROLib.NeroFileClass();
                NEROLib.NeroFileClass nfile3 = new NEROLib.NeroFileClass();
    
                // Eigenschaften der Files festlegen
                nfile1.Name = "1_markus.txt";
                nfile1.SourceFilePath = @"c:\test2.txt";
                nfile2.Name = "2_markus.txt";
                nfile2.SourceFilePath = @"c:\eng.txt";
                nfile3.Name = "3_markus.txt";
                nfile3.SourceFilePath = @"c:\sr.txt";
    
                // Dateien den Verzeichnissen hinzufügen
                nfolder.Files.Add(nfile1);
                nsecondfolder.Files.Add(nfile2);
    
                // BrennOptionen für den ISO Track festlegen
                niso.BurnOptions = NEROLib.NERO_BURN_OPTIONS.NERO_BURN_OPTION_CREATE_ISO_FS;
    
                // Ausgewähltes Laufwerk übergeben
                ndrive =(NEROLib.NeroDrive)ndrives.Item(cmb_brennerauswahl.SelectedIndex);
    
                // Hinzufügen des OnProgress Events zum ausgewählten Laufwerk
                ndrive.OnProgress += new NEROLib._INeroDriveEvents_OnProgressEventHandler(OnProgress);
    
                // CD Erstellen und Daten auf CD Brennen
                ndrive.BurnIsoAudioCD("","",false,niso,null,null,NEROLib.NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE,10,NEROLib.NERO_MEDIA_TYPE.NERO_MEDIA_CDRW);
    
            }
    
            private void OnProgress(ref int percent, ref bool abort)
            {
                prgbar_fortschritt.Value = percent;
            }
        }
    }
    


  • Keiner eine Idee??? Kanns sein, dass das mit Nero 8 nicht mehr funktioniert? 💡



  • do0fY schrieb:

    Keiner eine Idee??? Kanns sein, dass das mit Nero 8 nicht mehr funktioniert? 💡

    Ist schon ewig her wo ich dies geschrieben habe. Damals hab ich das ganze mit Nero 6 gemacht. Wie das 8er Nero aussieht und ob es dort probleme gibt kann ich dir leider nicht beantworten.



  • könntest du mehr sagen, wenn ich den inhalt der NeroLib poste? 😃


Anmelden zum Antworten