Take the following steps to start a project and to add some code that burns an ISO file, or a directory of files to disc
Start Visual Studio .NET. Choose File->New->Project… from the menu. In the New Project dialog box, choose either "Visual C# Projects" or "Visual Basic Projects" in the Projects Type List, and choose "Windows Application " in the Templates List. Type the project name as "Burn ISO and CD_DVD Files" in the Project Name field, and then choose OK. If desired, type a new location for your project or select a directory using the Browse button, and then choose OK. In the "Solution Explorer" window, right-click on the "References" folder, and select "Add Reference…" from the context menu. In the "Add Reference" dialog box, select the ".NET" tab and browse to Leadtools For .NET "\LEAD Technologies\LEADTOOLS 16.5\Bin\DotNet\Win32 " folder and select the following DLLs: Leadtools.dll Leadtools.MediaWriter.dll
Make sure Form1 is in design view. Go to the toolbox (View->Toolbox) and add the following controls to the form. Textbox: Name = _txtInput ComboBox: Name = _cmbDrives Button: Name = _btnWrite, Text = "Write Data"
Switch to Form1 code view (right-click Form1 in the solution explorer then select View Code ) and add the following lines at the beginning of the file: [Visual Basic]
Imports Leadtools Imports Leadtools.MediaWriter
[C#]
using Leadtools; using Leadtools.MediaWriter;
Add the following class level variables:: [Visual Basic]
Dim mediaWriter as MediaWriter Dim burnerDrive as MediaWriterDrive
[C#]
MediaWriter mediaWriter; MediaWriterDrive burnerDrive;
Add an event handler to the Form1 Load event and add the following code: [Visual Basic]
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) mediaWriter = New MediaWriter() _cmbDrives.Items.Clear() For Each drive As MediaWriterDrive In mediaWriter.Drives _cmbDrives.Items.Add(drive.Name) Next drive _cmbDrives.SelectedIndex = mediaWriter.CurrentDriveNumber + 1 End Sub
[C#]
private void Form1_Load(object sender, System.EventArgs e) { mediaWriter = new MediaWriter(); _cmbDrives.Items.Clear(); foreach (MediaWriterDrive drive in mediaWriter.Drives) { _cmbDrives.Items.Add(drive.Name); } _cmbDrives.SelectedIndex = mediaWriter.CurrentDriveNumber + 1; }
Add an event handler to the _cmbDrives SelectedIndexChanged event and add the following code: [Visual Basic]
Private Sub _cmbDrives_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) mediaWriter.CurrentDriveNumber = _cmbDrives.SelectedIndex - 1 If Not burnerDrive Is Nothing Then burnerDrive.OnDeviceEvent -= burnerDrive_OnDeviceEvent End If burnerDrive = mediaWriter.CurrentDrive 'Only add device event for valid drives If burnerDrive.DriveNumber <> -1 Then AddHandler burnerDrive.OnDeviceEvent, AddressOf Of MediaWriterDevNotifyEventArgs End If _btnWrite.Enabled = burnerDrive.Writeable End Sub
[C#]
private void _cmbDrives_SelectedIndexChanged(object sender, System.EventArgs e) { mediaWriter.CurrentDriveNumber = _cmbDrives.SelectedIndex - 1; if (burnerDrive != null) burnerDrive.OnDeviceEvent -= burnerDrive_OnDeviceEvent; burnerDrive = mediaWriter.CurrentDrive; //Only add device event for valid drives if (burnerDrive.DriveNumber != -1) burnerDrive.OnDeviceEvent += new EventHandler<MediaWriterDevNotifyEventArgs>(burnerDrive_OnDeviceEvent); _btnWrite.Enabled = burnerDrive.Writeable; }
Add an event handler to the _btnWrite Click event and add the following code: [Visual Basic]
Private void Function btnWrite_Click(ByVal sender As Object, ByVal e As System.EventArgs) As _ If String.IsNullOrEmpty(_txtInput.Text) Then MessageBox.Show("You must choose an input file" & Constants.vbFormFeed & "older") Return End If Dim burnDisc As MediaWriterDisc = burnerDrive.CreateDisc() burnDisc.SourcePathName = _txtInput.Text burnDisc.VolumeName = "LEAD Media" burnerDrive.BurnDisc(burnDisc) Me.Text = "Writing" Do While burnerDrive.State = MediaWriterState.StateWriting 'Loop until complete Application.DoEvents() Loop this.Text = "Complete"; MessageBox.Show("Complete") End Function
[C#]
private void _ btnWrite_Click(object sender, System.EventArgs e) { if (String.IsNullOrEmpty(_txtInput.Text)) { MessageBox.Show("You must choose an input file\folder"); return; } MediaWriterDisc burnDisc = burnerDrive.CreateDisc(); burnDisc.SourcePathName = _txtInput.Text; burnDisc.VolumeName = "LEAD Media"; burnerDrive.BurnDisc(burnDisc); this.Text = "Writing"; while (burnerDrive.State == MediaWriterState.StateWriting) { //Loop until complete Application.DoEvents(); } this.Text = "Complete"; MessageBox.Show("Complete"); }
- Add the following class function.
[Visual Basic]
Private Sub burnerDrive_OnDeviceEvent(ByVal sender As Object, ByVal e As MediaWriterDevNotifyEventArgs) _btnWrite.Enabled = burnerDrive.Writeable End Sub
[C#]
void burnerDrive_OnDeviceEvent(object sender, MediaWriterDevNotifyEventArgs e) { _btnWrite.Enabled = burnerDrive.Writeable; }
Build, and Run the program to test it.
Select your burner from the drives list, fill the textbox with the path to a valid ISO image or directory of files, and click the "Write" button.