Горячие клавиши - C# (204013)

Узнай цену своей работы

Формулировка задачи:

Нужно сделать горячую клавишу. Я находил в инете примеры. Но мне надо немножко по другому. В тех премерах клавиша горячии клавиши работает когда окно активно, а мне нужно что б работали даже тогда когда окно свернуто или скрыто.

Ап....

Решение задачи: «Горячие клавиши»

textual
Листинг программы
    public partial class MainForm : Form
    {
        const int WM_HOTKEY = 0x0312;
 
        const int MOD_NOMOD = 0x0000;
        const int MOD_ALT = 0x0001;
        const int MOD_CTRL = 0x0002;
        const int MOD_SHIFT = 0x0004;
        const int MOD_WIN = 0x0008;
 
        [DllImport("user32.dll")]
        public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
 
        [DllImport("user32.dll")]
        public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
 
        public MainForm()
        {
            InitializeComponent();
 
            //второй аргумент это индекс горячей клавиши,
            //все зарегистрированные индексы нужно освободить после закрытия приложения
            RegisterHotKey(this.Handle, 0, MOD_NOMOD, (int)Keys.D0);
        }
 
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case WM_HOTKEY: //обработка нажатых клавишь
                    Keys key = (Keys)(((int)m.LParam >> 16) & 0x0000FFFF);
                    int modifier = (int)m.LParam & 0x0000FFFF;
 
                    if (key == Keys.D0 && modifier == MOD_NOMOD)
                    {
 
                    }
                break;
            }
 
            base.WndProc(ref m);
        }
 
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            UnregisterHotKey(Handle, 0);//вот тут освобождаются
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5