0

我正在努力想一个好的设计来处理多个全局热键。

假设我有三个不同的功能绑定到三个不同的全局热键......

  1. 播放歌曲 | Ctrl + P
  2. 跳过歌曲 | Ctrl + N
  3. 增加音量 | Ctrl + V

检查按下的热键是否符合特定功能的好方法是什么?我正在使用与此非常相似的类:http ://www.liensberger.it/web/blog/?p=207

我应该为每个热键创建一个热键类的新实例吗?

Hotkey hotkey = new Hotkey();
hotkey.RegisterHotkey(Shortcut.ModifierKeys.Control, Keys.F10);

hotkey.KeyPressed += ((s, args) =>
{
    //Do Something!
});

或者我应该有一个具有不同热键功能的枚举并从热键类中管理它以防止多个实例(似乎很浪费但很容易)。感谢您提前提供任何建议/帮助。

4

2 回答 2

2

我会选择为每个不同的函数创建一个单独的类实例,因为命令模式在这里看起来很合适。有关更多信息,请参阅此链接。

于 2012-10-13T21:49:34.090 回答
0

为什么不将热键类设为静态?

 Hotkey.Register(modifier, key, callback)

并将它们保存在班级内的列表中?

另外,我建议您为热键添加更多修饰符。你所有的人都被分配到一个共同的任务:Control+ P= 打印,Control+ N= 新建和Control+ V= 粘贴

于 2012-10-13T21:51:30.387 回答