我使用RegisterHotkey函数在应用程序中创建了热键,如下所示
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
...
RegisterHotKey(FormHandle, HOTSAVE, MOD_CONTROL, (int)'S');这里的FormHandle是应用程序主窗体的句柄,HOTSAVE -是一个常量-热键的标识符。问题是,即使我的应用程序不在焦点上,它也会收到热键消息,从而阻止其他应用程序处理它们的热键(例如,记事本中的Ctrl+S不起作用)。
谁能指出问题出在哪里?谢谢。
发布于 2012-03-16 20:49:20
你把热键和键盘快捷键搞混了。热键总是全局的,这就是为什么你必须注册它们。
然而,键盘快捷键是进程/窗口/对话特定的,并且通常存储在应用程序资源中。
有关键盘加速器的更多信息here
https://stackoverflow.com/questions/9737468
复制相似问题