cd yazdırmak istiyorsunuz bunuda kod ile yapmak istiyorsunuz o zaman çok fazla şansınız yok ya paralı SDK lardan birini alcaksınızki bence alın. yada bunada paramı verilir ulayn diyip beleş yol bakacaksınız bu yazı beleş ile ilgili 🙂
xpburn ve cdrecords var benim şimdiye kadar bulabildiğim çalışan dalga bu kadar. xpburn de efsan eski bir proje bulması zor gotdotnet zamanında yazılmış bazıları bilir artık gotdotnet yok codeplex var. neyse bu xpburn aslında imapi cd-burn diye bir windows servisi ilen konuşup cd yazma işini halleder. arada bazen dangoz exceptionlar verebilir bende anlamadım o excception ları COM la konuşuyor ya takoz exception şuna benzio
COM Exception 11111512115152151
hadi anla. neyse bu yinede kullanılabilir.
cdrecord xpburn e göre daha düz. içinde mkisofs diye bir aracı var bu iso yapmaya cdrecord.exe de bu iso yu yazmaya yarıyor. komutlarıda sade örnek mksiofs:
mkisofs -iso-level 4 -o deneme.iso Kurulum
Kurulum folderini alıp deneme.iso çıkartan komut iso levelde benim durumumda long file name işini çözmeme yaradı. bazı dosya isimleri 80 yada 100 karakter olabiliyordu. mkisofs de INFO verip isimlerini kısaltıodu. çözmem uzun sürdü bi sürü opsiyonu var -help deyip bi bakmanızı tavsiye ederim. sonra çıkan iso yu yazmak dahada kolay:
cdrecord -blank=minimal -speed=52 deneme.iso
bu blank tekrar yazılabilir cd lerin önden temizlenmesini sağlıo. bunu C# ilen çağırmak asıl sancılı kısımdı. aslında Process.Start(…) demek yeterlide bi şekilde kullanıcı arkada ne bok yiyom görmeli sabırla beklemeli. o sebep bide textbox ım var buna yazmam gerek bunların out larını ama bu işin kolay yolu yok çünkü yarak kafası UI threadleri öle heryerde her vakit çağırılamıo bazen VB6 yı özlüyorum bu sebep. ne yazsam çalışırdı az uğraştırırdı. neyse bu .net döngüsünde bu işi becerebilmek içinde adam gibi bi yol bulmak gerekio oda 2 dosyayla halloluyor. makale yi şöyle bi okuyun içinden ProcessCaller.cs ve AsyncOperation.cs dosyalarını alın örneğe bakarak halledin. kod .net 1.1 den kalma az değiştiriceniz.