folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder Windows API Kullanımı - C#.NET



Windows API Kullanımı - C#.NET

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    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.

    http://img109.imageshack.us/img109/6043/75087526.png

    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,

    http://img109.imageshack.us/img109/5283/24352486.png

    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.


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cemnet
    cemnet's avatar
    Kayıt Tarihi: 18/Eylül/2007
    Erkek

    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 ..

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    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 :)


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cimbomlu_15
    cimbomlu_15's avatar
    Kayıt Tarihi: 24/Eylül/2007
    Erkek

    SharpShooter geri mi döndü ? Yoksa ben mi takip etmedim şimdiye kadar ?

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    cimbomlu_15 bunu yazdı:
    -----------------------------

    SharpShooter geri mi döndü ? Yoksa ben mi takip etmedim şimdiye kadar ?


    -----------------------------

    geri döndü derken hocam ?


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cimbomlu_15
    cimbomlu_15's avatar
    Kayıt Tarihi: 24/Eylül/2007
    Erkek

    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.

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    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 :)


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    Kulagindan tutup geri getirdim :P


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    acikistihbarat
    acikistihbarat's avatar
    Kayıt Tarihi: 25/Mart/2009
    Erkek

    hoca seni takip eden çok kişi var.devam et yazmaya....

  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cimbomlu_15
    cimbomlu_15's avatar
    Kayıt Tarihi: 24/Eylül/2007
    Erkek

    "Ş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..

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SharpShooter
    SharpShooter's avatar
    Banlanmış Üye
    Kayıt Tarihi: 10/Temmuz/2008
    Erkek

    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.


    - xx yerde hata var. - ya aslında kod şöyle sanıyor olabilir bla bla bla - olm kendine gel kodlar düşünmez - ...
Toplam Hit: 3459 Toplam Mesaj: 12