private const int WM_DESTROY = 0x2; //窗口消息:销毁 protected override void WndProc(ref Message msg) { base.WndProc(ref msg); switch (msg.Msg) { case WM_HOTKEY: //窗口消息:热键 int tmpWParam = msg.WParam.ToInt32(); if (tmpWParam == HotKeyID) { do_work(); } break; case WM_CREATE: //窗口消息:创建 SystemHotKey.RegHotKey(this.Handle, HotKeyID, SystemHotKey.KeyModifiers.Ctrl, Keys.L); break; case WM_DESTROY: //窗口消息:销毁 SystemHotKey.UnRegHotKey(this.Handle, HotKeyID); //销毁热键 break; default: break; } }
protected override void WndProc(ref Message m) { switch (m.Msg) { case DefaultMessageValue.WmHotKey: switch (m.WParam.ToInt32()) { case 100: buttonCaptureImage_Click(null, null); break; } break; case DefaultMessageValue.WmCreate: SystemHotKey.RegHotKey(Handle, 100, KeyModifiers.Ctrl | KeyModifiers.Alt, Keys.Z); break; case DefaultMessageValue.WmDestory: SystemHotKey.UnRegHotKey(Handle, 100); break; case DefaultMessageValue.WmSyscommand: if (m.WParam.ToInt32() == DefaultMessageValue.ScMinimize) { WindowState = FormWindowState.Minimized; ShowInTaskbar = true; } break; case DefaultMessageValue.WmRbuttondown: //int i = 43; break; } base.WndProc(ref m); }
private bool RegHotKey(System.Windows.Forms.Keys key, out string message) { if (!SystemHotKey.RegHotKey(_thisWindowHandle, c_hotKeyId, SystemHotKey.KeyModifiers.Alt | SystemHotKey.KeyModifiers.Ctrl, key, out message)) { message = $"Ctrl + Alt + {key.ToString()} " + message; return(false); } else { return(true); } }
//重载系统方法,用于处理热键 protected override void WndProc(ref Message msg) { base.WndProc(ref msg); switch (msg.Msg) { case WM_HOTKEY: //窗口消息:热键 int tmpWParam = msg.WParam.ToInt32(); //MessageBox.Show("hot key:" + tmpWParam); //ctrl+NumPad0开启自动跟踪 //ctrl+enter关闭自动跟踪 if (usbDevice != null && systemStatus != null) { if (tmpWParam == HotKeyID1) { usbDevice.IfAutoTrace(true); systemStatus.autoTrace = usbDevice.autoTrace; this.textBox_msg.Text = systemStatus.GetSytemStatus(); ShowToolTip("已开启自动跟踪"); } else if (tmpWParam == HotKeyID2) { usbDevice.IfAutoTrace(false); systemStatus.autoTrace = usbDevice.autoTrace; this.textBox_msg.Text = systemStatus.GetSytemStatus(); ShowToolTip("已关闭自动跟踪"); } else if (tmpWParam == HotKeyID3) { ShowToolTip("测试热键"); } } break; case WM_CREATE: //窗口消息:创建 SystemHotKey.RegHotKey(this.Handle, HotKeyID1, SystemHotKey.KeyModifiers.Ctrl, Keys.NumPad0); SystemHotKey.RegHotKey(this.Handle, HotKeyID2, SystemHotKey.KeyModifiers.WindowsKey, Keys.NumPad0); SystemHotKey.RegHotKey(this.Handle, HotKeyID3, SystemHotKey.KeyModifiers.Alt, Keys.Add); break; case WM_DESTROY: //窗口消息:销毁 SystemHotKey.UnRegHotKey(this.Handle, HotKeyID1); //销毁热键 SystemHotKey.UnRegHotKey(this.Handle, HotKeyID2); //销毁热键 SystemHotKey.UnRegHotKey(this.Handle, HotKeyID3); //销毁热键 break; default: break; } }