C# 使用C的快捷键#
我想创建一个简单的应用程序,它有一个发送键(比如快捷键)。情况是,只要创建的应用程序处于非活动状态,只要系统正在运行,系统仍会识别用户的按键 简而言之,只要按下(window+D)键,无论您在哪个应用程序/窗口中,都会立即显示桌面 有谁能帮助我在C#2005中如何做到这一点吗?请使用以下命令:C# 使用C的快捷键#,c#,keyboard-shortcuts,C#,Keyboard Shortcuts,我想创建一个简单的应用程序,它有一个发送键(比如快捷键)。情况是,只要创建的应用程序处于非活动状态,只要系统正在运行,系统仍会识别用户的按键 简而言之,只要按下(window+D)键,无论您在哪个应用程序/窗口中,都会立即显示桌面 有谁能帮助我在C#2005中如何做到这一点吗?请使用以下命令: [DllImport("user32.dll")] private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifi
[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);
及
然后,要注册热键
RegisterHotKey(hWndNotify, id,
(uint)_getModifierKeys(_isAlt, _isCtrl, _isShift, _isWin),
(uint)_key);
在主机hWnd中,侦听WM_HOTKEYREADY,然后使用
public bool Matches(ref Message m)
{
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
ModifierKeys modifier = (ModifierKeys)((int)m.LParam & 0xFFFF);
if ((key == Key) &&
(modifier == Modifier))
{
return true;
}
return false;
}
您是否可以浏览您的其他问题,并将所有正确帮助您的答案标记为已接受的答案(勾选)。这将给那些帮助你和你自己的人一个机会,鼓励其他人帮助你。
public bool Matches(ref Message m)
{
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
ModifierKeys modifier = (ModifierKeys)((int)m.LParam & 0xFFFF);
if ((key == Key) &&
(modifier == Modifier))
{
return true;
}
return false;
}