TurkProgrammers.NeT
Ana sayfa Ana Sayfa | Ana sayfanız yapın | Sık kullanılanlara ekle | Rss/Rdf Besleme| JavaScript
Bölümler
Arşiv
paz sa ça cu cum pa
1234567
891011121314
15161718192021
22232425262728
293031

Mailinizi ekleyin
Haberlere abone olun:

anket: Web Programcılığının Geleceğini nasıl görüyorsunuz
Web Programcılığının Geleceğini nasıl görüyorsunuz?
Önü Fazlası ile açık
ilerde yapacak web sitesi kalmayacak
Hazır sistemler işleri iyice bitirecek
Bugünden daha kötü olamaz
Anket sonuçları | Eski Anketler


email Arkadaşınızın maili | print Yazıcı versionu | comment Yanıtlar (0 Gönder)

Kod ile Cd Yazma (Cd Burning)

by caner kuru on Kasım 07,2008

image
Projelerinizde kullanabileceginiz API ile cd yazdırma.
Öncelikle bir cd yi windowsta yazmak istiyorsanız DLL ve API kullanmalısınız bu yüzden bu DLL ler import edilmeli,import etmek için kullancağımız yöntem Add referances e tıklayarak Dll bulup projeye eklemektir.
İlk olarak asagıdakileri classa ekleyin

using System.Management;
using System.Runtime.InteropServices; //interopServices'i ekledik

bunlar WMI için ekledik şimdi CDyaz classını yazalım

public class CDYaz
{
private IMAPI_CDBurner.ICDBurn objBurner; //CD Yazma işlemini yapacak nesneyi tanımlıyoruz.

private bool cdYaziciVarmi = false;
private string cdYazici = "";
private StringBuilder cdyeYazilacakAlan = new StringBuilder(1024);

[DllImport("shell32.dll")]
public static extern Int32 SHGetFolderPath
(IntPtr hwndOwner, Int32 nFolder, IntPtr hToken,
UInt32 dwFlags, StringBuilder pszPath);


const int CSIDL_CDBURN_AREA = 0x03b;

//CD Yazıcı olup olmadığını kontrol edeceğimiz property

public bool CdYaziciVarmi
{
get
{
return cdYaziciVarmi;
}
}

// CD Yazıcımızın path’ni tutacak property

public string CdYazici
{
get
{
return cdYazici;
}
}

// CD’ye yazmamız için dosyaları kopyalayacağımız path(tampon bölge)
public string CdyeYazilacakAlan
{
get
{
return cdyeYazilacakAlan.ToString();
}
}

// Classımızın Constructor’ını tanımlıyoruz

public CDYaz()
{
objBurner = new IMAPI_CDBurner.CDBurnClass();//DLL den Burner Nesnesini alıyoruz.
int i = 0;
objBurner.HasRecordableDrive(out i);
cdYaziciVarmi = i > 0;

string drive = "???";
objBurner.GetRecorderDriveLetter(drive, 4); // CD Yazıcının sürücü adını burner nesnesi aracılığı ile alıyoruz
cdYazici = drive;

SHGetFolderPath((IntPtr)0, CSIDL_CDBURN_AREA, (IntPtr)0, 0, cdyeYazilacakAlan); // Bu metod ile cdYeYazilacak olan tampon bilgisi cdyeYazilacakAlan propertysine set ediliyor

}

public void YazmaIsleminiBaslat (IntPtr h) // Bu metod ile CD Yazma işlemi gerçekleştiriliyor.
{
objBurner.Burn((uint)h);
}
}


Yukarıda classımızı yazdık şimdi bu classdan nesneler oluşturarak yenibir classta CD yazmaya başlayacaz

Cd sürücüsüne bir klasör atıp yazdıraçağız öncelikle yapmamız gereken bizim Cd sürücüsü sistemde varmı yokmu onu kontrol etmek hemen bakıyoruz

private void Form1_Load(object sender, EventArgs e)
//Form load cd yazıcı kontrolu sürücü adı ve bellek alanı yazma
{
if (nCDYaz.CdYaziciVarmi)

textBox1.AppendText("Sisteminiz üzerinde CD Yazıcı var.\r\n");
textBox1.AppendText("Sürücü Adı: " + nCDYaz.CdYazici + "\r\n");
textBox1.AppendText("Dosyaların Kopyalanacağı Tampon Bellek: " + nCDYaz.CdyeYazilacakAlan);
}

else
{
textBox1.AppendText("CD'Ye yazmak için Bir CD Yazıcınız yok !");
}
}

Kontrol yaptıktan sonra yapaçagımız directory işlemleri koda bakalım

DirectoryInfo di = new DirectoryInfo(kopyalanacakKlasor);
//kopyalanacak klasörün içeriği dosya ekle ile belirlendi

FileInfo[] rgFiles = di.GetFiles("*.*"); //BUrasını statik yapacaz


foreach (FileInfo fi in rgFiles) // Klasördeki dosyaları CD’ye yazılacak alana kopyala

{
File.Copy(fi.FullName, nCDYaz.CdyeYazilacakAlan + "\" + fi.Name);
}

textBox1.AppendText("Yazma işlemi Başladı..\r\n");
nCDYaz.YazmaIsleminiBaslat(this.Handle); // CD Yazma işlemini başlat
textBox1.AppendText("Yazma işlemi bitti\r\n");

Artık geri kalan windowsa olayı devrettik o sizi yönlendirecek ve böylecce projelerinizde kendi istediğiniz klasörü kod ile yazdırmış olursunuz.. Kalın sevgiyle

292 Kere okundu

Bu makaleyi beyendinizmi ?

1 2 3 4 5 Rating: 5.00Rating: 5.00Rating: 5.00Rating: 5.00Rating: 5.00 (Toplam 3 Oylar)
comment Yanıtlar (0 Gönder)
Çok okunanlar
En Çok Yorumlananlar
Yazarlar