Горячие клавиши - 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);//вот тут освобождаются } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д