[C#] Горячие Клавиши

Тема в разделе "Создания ПО", создана пользователем iDReeM!, 19 июн 2015.

  1. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    [hr]Здарова бандосы:()​
    [hr]В этой теме поделюсь с вами секретами шарпа :) А именно: научу биндить хоткеи для ваших трейнеров и прочего)[hr]Приступим к самой магии:
    Код:
    public class cKeyHook
    
    {
    
        /// <summary>
    
        /// Return
    
        /// </summary>
    
        /// <returns></returns>
    
        protected short GetKeyState(int dwKEY)
    
        {
    
            return cHook.GetKeyState(dwKEY);
    
        }
    
        protected short GetAsyncKeyState(int dwKEY)
    
        {
    
            return cHook.GetAsyncKeyState(dwKEY);
    
        }
    
        /// <summary>
    
        /// public bind
    
        /// </summary>
    
        /// <returns></returns>
    
        public bool isKeyState(int dwKEY)
    
        {
    
            bool dwState = false;
    
            try
    
            {
    
                dwState = this.GetKeyState(dwKEY) != 0 ? true : false;
    
            }
    
            catch (Exception Except)
    
            {
    
                Console.WriteLine("{0}", Except.Message);
    
            }
    
            return dwState;
    
        }
    
        public bool isAsyncKeyState(int dwKEY)
    
        {
    
            bool dwState = false;
    
            try
    
            {
    
                dwState = this.GetAsyncKeyState(dwKEY) != 0 ? true : false;
    
            }
    
            catch (Exception Except)
    
            {
    
                Console.WriteLine("{0}", Except.Message);
    
            }
    
            return dwState;
    
        }
    
    }
    [hr]Не Забываем о импортах:
    Код:
    public class cHook
    
    {
    
        [DllImport("user32.dll")]
    
        public static extern short GetKeyState(int vKey);
    
        [DllImport("user32.dll")]
    
        public static extern short GetAsyncKeyState(int vKey);
    
    }
    [hr]Зависимости:
    Код:
    using System;
    
    using System.Runtime.InteropServices;
    [hr]Теперь перейдем к магии использования, в конструктор пишем указатель на наш класс:
    Код:
    cKeyHook KeyPressHook = new cKeyHook();
    [hr]Обременяем форму программы таймером, или создаем поток. (на свое усмотрение...). На таймер или в поток биндим клавиши, рассмотрим на примере кнопки E (на англ).
    Код:
    int VK_E = 0x45;
    [hr]
    Код:
    if (KeyPressHook.isKeyState(VK_E))
    
    {
    
        //Клавиша "E" Была НАЖАТА
    
    }
    Код:
    if (KeyPressHook.isAsyncKeyState(VK_E))
    
    {
    
        //Клавиша "Е" ЗАЖАТА
    
    }
    Думаю синтетика понятна. Удачи читеразы.





     
  2. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    Работает ультрабыстро, лучше многих аналогов)
     
  3. Insider1

    Insider1 New Member

    Репутация:
    0
    Регистрация:
    23 дек 2012
    Сообщения:
    648
    Симпатии:
    0
    Скажи , с каких это пор он не должен работать быстро ? Хоча в последнее время , из-за ССД , у меня все летает.
     
  4. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    ты не понял в чем прикол) смотри первые две функции в классе, без них чуть медленей работает. я проверял))
     
  5. nikita111nik123

    nikita111nik123 New Member

    Репутация:
    0
    Регистрация:
    19 окт 2013
    Сообщения:
    685
    Симпатии:
    0
    iDReeM!, Пригодится =)
     
  6. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    если ты сможешь код скопировать)
     
  7. AnVIRUS

    AnVIRUS Member

    Репутация:
    0
    Регистрация:
    14 ноя 2011
    Сообщения:
    979
    Симпатии:
    1
    Заебись, спасибо. Как раз для автокликалки норм хоткеи ебну
     
  8. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    на кайбо хак пилишь?))))
     
  9. AnVIRUS

    AnVIRUS Member

    Репутация:
    0
    Регистрация:
    14 ноя 2011
    Сообщения:
    979
    Симпатии:
    1
    нее) для кликалки игры просто чтоб кликал автоматом) а то неудобно самому кликать)
     
  10. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    iDReeM!,
     
  11. ITkhazeplov

    ITkhazeplov New Member

    Репутация:
    0
    Регистрация:
    24 янв 2015
    Сообщения:
    15
    Симпатии:
    0
    Сочетание клавиш криво работает, как исправить?

    Код:
    if(KeyPressHook.isAsyncKeyState(vk_Ctrl) && KeyPressHook.isAsyncKeyState(vk_MouseLKM))
     
  12. iDReeM!

    iDReeM! Active Member Команда форума

    Репутация:
    0
    Регистрация:
    5 дек 2013
    Сообщения:
    3.168
    Симпатии:
    3
    Код:
    if(KeyPressHook.isAsyncKeyState(vk_Ctrl))
    
       if(KeyPressHook.isAsyncKeyState(vk_MouseLKM))
    
            //Траляля
     

Поделиться этой страницей