Windows API Kullanımı - C#.NET
-
Herkese merhabalar,
Bugün c#.net'de windows apilerinin kullanılması konusuna değinmeye çalışıcam.Basit bir örnekle anlatıcam.
Öncelikle api'mizi import edelim.
resimde de görüldüğü gibi class seviyesinde dll'imizi import ediyoruz. ben kernel32.dll'ini kullanıcam.
altına yazdığımız metod kernel32.dll'inin içinde olan bir metot, parametreleri birebir aynı vermeliyiz.
ben örnek olarak bir piyano yapıcam tasarımımız şöyle olucak,
kod kısmına gelelim.
CalAnam diye bir metodumuz var bu 1 adet parametre alıyor , string tipinde.
Şimdi kodlarıma geçelim.
void CalAnam(string harf)
{
switch (harf)
{
case "a":
Beep(262, trackBar1.Value);
break;
case "w":
Beep(277, trackBar1.Value);
break;
case "s":
Beep(294, trackBar1.Value);
break;
case "e":
Beep(311, trackBar1.Value);
break;
case "d":
Beep(330, trackBar1.Value);
break;
case "f":
Beep(349, trackBar1.Value);
break;
case "t":
Beep(370, trackBar1.Value);
break;
case "g":
Beep(392, trackBar1.Value);
break;
case "y":
Beep(415, trackBar1.Value);
break;
case "h":
Beep(440, trackBar1.Value);
break;
case "u":
Beep(466, trackBar1.Value);
break;
case "j":
Beep(495, trackBar1.Value);
break;
case "k":
Beep(520, trackBar1.Value);
break;
}
}switch yapısıyla hangi tuşa basılırsa ona göre beep metoduna frekans yolluyoruz. beep metoduda kernel32.dll'ini kullanarak bilgisayardan ses çıkışını sağlıyor.Beep metoduna yolladığımız diğer parametre ise çalma uzunluğu. onuda trackbar yardımıyla alıyoruz.
Şimdi her butona ayrı ayrı event yazmaktansa, bütün butonları seçip, propertiesden event sekmesine gelip "click" eventını oluşturuyoruz.
oluşan eventın içine ise
CalAnam((sender as Button).Text);
yazıyoruz.
birde piyanomuz klavyedende çalınabilsin diye, form'un "KeyPress" eventına şunları yazıyoruz.
CalAnam(e.KeyChar.ToString().ToLower());
evet karşınızda windows apisi kullanarak yazmış olduğumuz bir piyano :))
takıldığınız yerleri bu başlık altında sorabilirsiniz.
-
Benım piyano çalıştı ancak biraz daha ses efekti eklenmesi lazım :) .. Win. apileri kullanıp/anlamak adına güzel bir örnek yapmışsın hocam tebrikler ..
-
cemnet bunu yazdı:
-----------------------------
Benım piyano çalıştı ancak biraz daha ses efekti eklenmesi lazım :) .. Win. apileri kullanıp/anlamak adına güzel bir örnek yapmışsın hocam tebrikler ..
-----------------------------evet :P
teşekkürler :)
-
SharpShooter geri mi döndü ? Yoksa ben mi takip etmedim şimdiye kadar ?
-
cimbomlu_15 bunu yazdı:
-----------------------------
SharpShooter geri mi döndü ? Yoksa ben mi takip etmedim şimdiye kadar ?
-----------------------------geri döndü derken hocam ?
-
Etrafına bak bakalım istersen sayende kaç kişi programlamaya başladı. "Geri döndü"'den kastım, uzun zamandır başlığını görmemiştim.
-
cimbomlu_15 bunu yazdı:
-----------------------------
Etrafına bak bakalım istersen sayende kaç kişi programlamaya başladı. "Geri döndü"'den kastım, uzun zamandır başlığını görmemiştim.
-----------------------------takip edenlerin olması beni sevindirdi sağolasın hocam :)
evet haklısın bi süre forumdan uzak kalmıştım, gene ara ara dönemlerde uzak kalabilirim :)
-
Kulagindan tutup geri getirdim :P
-
hoca seni takip eden çok kişi var.devam et yazmaya....
-
"Şimdi her butona ayrı ayrı event yazmaktansa, bütün butonları seçip, propertiesden event sekmesine gelip "click" eventını oluşturuyoruz."
Bunu beceremedim yalnız..
-
cimbomlu_15 bunu yazdı:
-----------------------------
"Şimdi her butona ayrı ayrı event yazmaktansa, bütün butonları seçip, propertiesden event sekmesine gelip "click" eventını oluşturuyoruz."
Bunu beceremedim yalnız..
-----------------------------şöyle yapıyoruz hocam,
dizayn kısmına gel, bütün butonları seç, ctrl tuşuna basarak tek tek de seçebilirsin. ardından hepsi seçiliyken "properties" sekmesine tıklıyoruz,oradanda event sekmesine sanki normal event oluşturur gibi event oluşturuyoruz.