C# ' Da Auto Clicker

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    erenn
    erenn's avatar
    Kayıt Tarihi: 08/Nisan/2007
    Erkek

    Merhaba arkadaşlar

    Bir oyun için debug yapıyoruz.C# 'dan basit bir işlev yazılması gerekiyor.

    F8 tuşuna basınca sürekli sağ tıklayacak
    F9 tuşuna basınca duracak. 

    Şimdiden teşekkürler. 

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

    sanırım aradıgın şey bu ufak bi editlemeyle halledersin

    //GetAsyncKeyState apisi ile klavyeden basılan tuşu yakalıyoruz.
    #region BasılanTusuYakala
    [DllImport("user32.dll")]
    private static extern short GetAsyncKeyState(Int32 deger);
     
    //Yukarıdaki apiyi kullanarak geriye string döndüren
    //bir method hazırlıyoruz.
    private string BasilanTus()
    {
        string tus = null;
        foreach (int item in Enum.GetValues(typeof(Keys)))
        {
            if (GetAsyncKeyState(item) == -32767)
            {
                tus = Enum.GetName(typeof(Keys), item);
            }
        }
        return tus;
    }
    #endregion
     
    #region MouseOtomatikTikla
    //Mouse tıklama yapmak için kullandığımız api
    [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
    public static extern void mouse_event(Int32 dwFlags, Int32 dx, Int32 dy, Int32 cButtons, Int32 dwExtraInfo);
     
    private const int MOUSEEVENTF_LEFTDOWN = 0x02;
    private const int MOUSEEVENTF_LEFTUP = 0x04;
    private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
    private const int MOUSEEVENTF_RIGHTUP = 0x10;
     
    //SolTikla ve SagTikla methodları hazırladım. Böylece
    //istenirse kullanıcıya seçenek sunularak sağ ya da sol
    //tıklama yaptırılabilir.
    private void SolTikla()
    {
        //Mouse'un koordinatları alınarak tıklama
        //yapılacak yer belirleniyor.
        int X = Cursor.Position.X;
        int Y = Cursor.Position.Y;
     
        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, X, Y, 0, 0);
    }
     
    private void SagTikla()
    {
        int X = Cursor.Position.X;
        int Y = Cursor.Position.Y;
     
        mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, X, Y, 0, 0);
    }
    #endregion
     
    private void Form1_Load(object sender, EventArgs e)
    {
     
    }
     
    bool tiklamaAktif = false;
     
    //timer1 her 50ms'de çalışarak klavyeden basılan tuşu kontrol ediyor
    private void timer1_Tick(object sender, EventArgs e)
    {
        //Baslına tuşu yakala
        string k = BasilanTus();
     
        //eğer basılan tuş F2 ise mouse tıklamaya başlayacak
        //tekrar F2 'ye basıldığında tıklama duracak
        if (k == "F2")
        {
            if (tiklamaAktif)
            {
                tiklamaAktif = false;
                lblDurum.Text = "Tıklama Pasif";
                timer2.Stop();
            }
            else
            {
                tiklamaAktif = true;
                lblDurum.Text = "Tıklama Aktif";
                timer2.Start();
            }
        }
    }
     
    private void timer2_Tick(object sender, EventArgs e)
    {
        //her 500ms'de tıkla
        SolTikla();
    }
Toplam Hit: 2689 Toplam Mesaj: 2