C# (CSharp) ile Fare Kontrolü - API Kullanarak -

Posted on 2015-11-17 by Burak Hamdi TUFAN
General Programming
C# (CSharp) ile Fare Kontrolü - API Kullanarak -
Herkese merhaba bu yazıda sizlere C# ile fare kontrolü yapmayı anlatacağım. Bu yazıdan sonra fareyi istediğimiz noktaya hareket ettireceğiz ve istediğimiz kadar tıklattıracağız.

Bu işlem için Windows apilerini kullanacağız ve sisteme ASCII karşılığı olan Hex kodları göndererek işlemimizi yapacağız. Şimdi isterseniz işlemlerimize başlayalım.

İlk olarak Sistem DLL dosyalarını kullanacağımız için

using System.Runtime.InteropServices;
kütüphanesini isim uzayına eklememiz gerekmektedir.
Ve ardından kulanacağımız değişkenleri ve DLL dosyasını programa tanıtmamız gerekmektedir.

 [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
//Yukarıda kullanacak olduğumuz DLL dosyasınısisteme entegre ettik

        public static extern void fare_kontrolu(Int32 dwFlags, Int32 dx, Int32 dy, Int32 cButtons, Int32 dwExtraInfo);
//Yukarıdaki kodda ise fareyi istediğimiz noktqaya götürüp istediğimiz işlemi yapmamızı sağlıyoruz

        private const int sol_bas= 0x02;
        private const int sol_kaldir= 0x04;
        private const int sag_bas= 0x08;
        private const int sag_kaldir= 0x10;
        //Burda ise fare yönetim dll komutuna göndereceğim değişkenleri ayarlıyorum.
        //Bunun amacı karıştırmamak yani sürekli hex kodları yazmak yerine bildiğim tanımladığım değerleri yazmak için böyle Define yaptım.

Dikkatinizi çekerim biz göndereceğimiz komutları HexaDecimal türünden tanıumladık. Çünkü DLL dosyası ASCII kodlarından anlar ve bunlarda özünde ASCII kodlarıdır.

Şimdide gelelim faremizi hareket ettirmeye ve sağ sol tıklatmaya... Aşağıda fareyi sağ tıklatma kodları var


private void SagTikla()
        {

            //Farenin ekrandakix ekseni konumu olacak
            int farenin_x_konumu = Cursor.Position.X;

            //Farenin ekrandaki y eksen koordinatı olacak
            int farenin_y_konumu = Cursor.Position.Y;

            fare_kontrolu(sag_bas | sag_kaldir, farenin_x_konumu, farenin_y_konumu, 0, 0);

/*
sag_bas : yukarıda tanımladığımız hex değerini gönderiyruz
sag_kaldir : yine aynı şekilde ukarıdaki hex değerini gönderiyoruz
ardından farenin konumlarını gönderiyoruz
ve ardında gerekli olmayan komutları gönderiyoruz ve faremiz istediğimiz yere tıklıyor
*/
        }

Evet yukarıdaki fonksiyondanda anlaşılacağı üzere faremize tıklama için gerekli koordinatları ve tıklanacak tuşları veriyoruz o ayarladığımız koordinatlara gidiyor ve tıklıyor Şimdi birde Sol tıklama işlemine bakalım...


 private void SolTikla()
        {

            int farenin_x_konumu = Cursor.Position.X;
            int farenin_y_konumu = Cursor.Position.Y;
            // Yine aynı şekilde farenin tıklayacağı konumları ayarlıyoruz

            fare_kontrolu(sol_bas | sol_kaldir, farenin_x_konumu, farenin_y_konumu, 0, 0);

//ve aynı şekilde konum ve tıklanacak tuşların HexaDecimal cinsinden ASCII değerlerini gönderiyoruz ve tıklamasını sağlıyoruz
        }
 

Bu sayede biz bilgisayar başında yokken bazı zamanlı tıklama işlemlerimizi yaptırabiliriz. Fareyi ekranda gezdirip işlemler yaptırabiliriz.

İyi Çalışmalar dilerim -- Takipte Kalın

Burak Hamdi TUFAN


Tags
Share this Post
Send with Whatsapp