b1n*_*phy 2 c++ windows hotkeys windows-shell
我一直在使用IShellLink界面,并对如何映射热键组合感到困惑.
仅应用单个热键时,返回值对应于记录的虚拟键代码; 例如F5 == 0x74
但是,当使用组合时,会返回一个我没有解密的无证值; 例如CTRL + ALT + A == 0x641
使用什么操作来组合多个虚拟键码?
这在以下文档中进行了解释IShellLink::GetHotkey:
虚拟键代码位于低位字节中,修饰符标志位于高位字节中.修饰符标志可以是以下值的组合:
- HOTKEYF_ALT(ALT键)
- HOTKEYF_CONTROL(CTRL键)
- HOTKEYF_EXT(扩展键)
- HOTKEYF_SHIFT(SHIFT键)
这些标志定义如下:
#define HOTKEYF_SHIFT 0x01
#define HOTKEYF_CONTROL 0x02
#define HOTKEYF_ALT 0x04
#define HOTKEYF_EXT 0x08
Run Code Online (Sandbox Code Playgroud)
因此,当你将CTRL和ALT标志带到一个单词的高位字节并组合它们时,你得到的0x0200 | 0x0400是等于0x0600.与虚拟键码组合这A是0x41,你有你的魔法不变0x0641.
| 归档时间: |
|
| 查看次数: |
2189 次 |
| 最近记录: |