Mouse un sag klik, sol klik, ve sag çift klik, sol çift klik olaylarini klavyedeki bir tusa atamakla ilgili.

Mouse Buttonlari Klavyedeki Tuslara Atamak

Mouse un sag klik, sol klik, ve sag çift klik, sol çift klik olaylarini klavyedeki bir tusa atamakla ilgili. Bunun için Hook Keyboard Event ile global olarak klavyeyi dinleme yapacagiz. Bu dinleme de mouse un tuslarina atanan tuslara basildigi takdirde mouse a klik kodunu yollayacagiz. 

 

Mouse Tuslarinin Kodlari
    [Flags] //Mouse un tuslari
    public enum MouseEventFlags
    {
        LEFTDOWN = 0x00000002,
        LEFTUP = 0x00000004,
        MIDDLEDOWN = 0x00000020,
        MIDDLEUP = 0x00000040,
        MOVE = 0x00000001,
        ABSOLUTE = 0x00008000,
        RIGHTDOWN = 0x00000008,
        RIGHTUP = 0x00000010
    }

 

 

Mouse Tusuna tiklanmis gibi olay göndermek
        [DllImport("user32.dll")]
        public static extern void mouse_event(MouseEventFlags dwFlags, int dx, int dy, uint dwData, int dwExtraInfo);

 

 

 

 

Klavyeyi dinleyerek basilan tusa göre
mouse a olay gönderme

        KeyboardListener KListener = new KeyboardListener();
        KListener.KeyDown += new RawKeyEventHandler(KListener_KeyDown);
        void KListener_KeyDown(object sender, RawKeyEventArgs args)
        {
            if (blnStart)
            {
               
                if (Program.intLeftClick == args.VKCode) //sag tiklamaya atanan tus karsilastirilir
                {
                    //mouse a sag tik hareketi gönderilir.
                    mouse_event(MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.LEFTUP, 0, 0, 0, 0);
                }
                else if (Program.intRightClick == args.VKCode) // sol tiklamaya atanan tus karsilastirilir.
                {
                    //mouse a sol tik hareketi gönderilir.
                    mouse_event(MouseEventFlags.RIGHTDOWN , 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.RIGHTUP, 0, 0, 0, 0);
                }
                else if (Program.intLeftDblClick == args.VKCode) // sag çift tiklamaya atanan tus karsilastirilir.
                {
                    //mouse a sag çift tik hareketi gönderilir.
                    mouse_event(MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.LEFTUP, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.LEFTDOWN, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.LEFTUP, 0, 0, 0, 0);
                }
                else if (Program.intRightDblClick == args.VKCode) // sol çift tiklamaya atanan tus karsilastirilir.
                {
                    // mouse a sol çift tik hareketi gönderilir.
                    mouse_event(MouseEventFlags.RIGHTDOWN, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.RIGHTUP, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.RIGHTDOWN, 0, 0, 0, 0);
                    mouse_event(MouseEventFlags.RIGHTUP, 0, 0, 0, 0);
                }
               
            }
        }

 

 

Atanan tuslarin ASCII kodlarini alarak
basilan tusun ASCII kodlariyla karsilastirilmasi

  Program.intLeftClick = Convert.ToInt16(cmbLeftClick.SelectedItem.ToString().ToCharArray()[0]);Program.intRightClick = Convert.ToInt16(cmbRightClick.SelectedItem.ToString().ToCharArray()[0]);Program.intLeftDblClick = Convert.ToInt16(cmbLeftDblClick.SelectedItem.ToString().ToCharArray()[0]);Program.intRightDblClick = Convert.ToInt16(cmbRightDblClick.SelectedItem.ToString().ToCharArray()[0]);

 

 Uygulama Tray bar da çalisacak ve Baslat durdur ile takibi kontrol edilecek. Bu uygulamanin iconunun üzerine sag click yapildignda asagidaki menü den baslat diyerek islem baslatilir veya durdur denilerek islem durdurulur.

 

 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder