Paul的帖子中链接了两个答案,一个告诉你如何实现钩子,另一个告诉你调用RegisterHotKey。对于像Ctrl + S这样简单的热键,您不需要安装钩子,因此请使用RegisterHotKey。
或者您可以使用 C# 的 MessageFilter。只要您的应用程序进程中的任何控件/窗体具有焦点,它就应该可以工作。
示例代码:
class KeyboardMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == ((int)Helper.WindowsMessages.WM_KEYDOWN))
{
switch ((int)m.WParam)
{
case (int)Keys.Escape:
// Do Something
return true;
case (int)Keys.Right:
// Do Something
return true;
case (int)Keys.Left:
// Do Something
return true;
}
}
return false;
}
}
然后只需向您的应用程序添加一个新的MessageFilter:
Application.AddMessageFilter(new KeyboardMessageFilter());
Helper
是做什么的?我该如何导入它? - iptq