Windows表单按键在非活动表单上

时间:2016-07-16 15:25:50

标签: c# winforms

我正在尝试为我的Windows窗体获取全局按键,而不会覆盖全局。我已尝试设置Keypress = true,但只有在表单处于活动状态时才会按下键,我还尝试使用

全局挂钩键
[DllImport("user32.dll")]
        private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);

        [DllImport("user32.dll")]
        private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

但是这会覆盖我不想做的关键。在某些地方,我可以在全球范围内检测到按键而不会覆盖它吗?

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试在表单上使用ProcessCmdKey

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{       
    MessageBox.Show(keyData.ToString());        

    return base.ProcessCmdKey(ref msg, keyData);
}