1 / 1 / 1
Регистрация: 16.07.2012
Сообщений: 94
1

Горячие клавиши

04.08.2013, 04:56. Показов 2727. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужен перехват событий с клавиатуры. Пожалуйста помогите.
Взял исходник отсуда Блокировать флажок на клавиатуре но тут очень много функции, а мне бы просто перехват с клавиатуры всей и все. Голая форма и перехват клавиатуры. Пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2013, 04:56
Ответы с готовыми решениями:

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

Горячие клавиши в программе
Всем привет! Как добавить к кнопке в menustrip сочетание клавиш нажав которое произойдет активация?

Как сделать глобальные горячие клавиши?
Как сделать глобальные горячие клавиши? Пользуюсь вот таким кодом public partial class Form1...

Горячие клавиши для своей программы
Нужна помощь, есть форма , на ней 2 кнопки. Нужны обычные хоткеи этих двух клавиш, ибо программа...

5
Master of Orion
Эксперт .NET
6100 / 4956 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.08.2013, 05:25 2
Deny_Doberman, поиском пробовали пользоваться?.. Кроме приведенной, таких тем только за последний год было штук 20. На любой вкус и цвет.
0
75 / 80 / 51
Регистрация: 22.03.2013
Сообщений: 258
04.08.2013, 17:59 3
Deny_Doberman, Сначала включи функцию кейпревью
C#
1
KeyPreview = true
Потом добовляешь собития кейдовн))
C#
1
2
3
4
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
 
        }
а в него вставляешь :
C#
1
2
3
4
5
6
7
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)//Enter меняй на свое
            {
                MessageBox.Show("Enter pressed!");//Происходит тогда когда нажата клавиша
            }
        }
Получиться примерно вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System.Windows.Forms;
 
namespace WindowsFormsApplication5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                MessageBox.Show("Enter pressed!");
            }
        }
    }
}
0
1 / 1 / 1
Регистрация: 16.07.2012
Сообщений: 94
04.08.2013, 23:10  [ТС] 4
Я так думаю этот код будет работать только в приделах формы, а мне нужно чтобы код работал даже если форма свернута
0
447 / 305 / 47
Регистрация: 23.01.2013
Сообщений: 661
05.08.2013, 00:02 5
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
    public partial class MainForm : Form
    {
        const int WM_HOTKEY = 0x0312;
 
        [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);
 
        [Flags]
        internal enum KEY_MOD : uint
        {
            NOMOD = 0x0000,
            ALT = 0x0001,
            CTRL = 0x0002,
            SHIFT = 0x0004,
            WIN = 0x0008
        }
 
        public MainForm()
        {
            InitializeComponent();
 
            RegisterHotKey(this.Handle, 0, (uint)KEY_MOD.CTRL, (int)Keys.Q);
        }
 
        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.Q && modifier == (uint)KEY_MOD.CTRL)
                    {
                        MessageBox.Show("Q + CTRL");
                    }
                break;
            }
 
            base.WndProc(ref m);
        }
 
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            UnregisterHotKey(Handle, 0);
        }
    }
1
1 / 1 / 1
Регистрация: 16.07.2012
Сообщений: 94
05.08.2013, 00:18  [ТС] 6
Снова вы меня спасаете
0
05.08.2013, 00:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2013, 00:18
Помогаю со студенческими работами здесь

Горячие клавиши (Ошибка при создании дескриптора окна)
public partial class ShotForm : Form { public static extern int...

Горячие клавиши для копирования данных из стороннего приложения
Доброго всем дня! У меня возник такой вопрос, нужно по нажатию заданных горячих клавиш к примеру...

Форма поверх всех, горячие клавиши и клавиша Win заблокированы
Приветик всем! С новым годом друзья. Извините, если что-то подобное уже было. Код выкладывать...

Горячие клавиши для меню, чтобы пункты открывались (разворачивались)
не могу разобраться как задать горячие клавиши для пунктов меню. MenuStrip (Основное меню)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru