register hotkey
起因
之前的TIM登不上去了,不得已下载了最新版本的TIM,之后它就告诉我,我的CTRL+ALT+S
已经被注册了,我记得很久以前我把这个快捷键赋值给了everything的快捷方式,但之后不知道为什么,这个快捷方式用不了了.
经过
然后我产生了两个疑问,
- 现在是谁在占用这个快捷方式?
- TIM是如何得知这个快捷方式已经被占用的呢?
关于问题2
查了查得到了第二个问题的答案: 可以用windows.h
提供的RegisterHotkey
,如果传入相应参数而函数返回false
的话,就可以知道该快捷键已经被占用了.
关于问题1
之后关于第一个问题做了一些尝试:
- 在桌面快捷方式的属性页面中的快捷键更改,之后执行快捷键,此时可以打开快捷方式指向的文件.
- 将之前设定的快捷键取消,发现还是可以使用之前设定的快捷键打开该文件
- 重新按照1进行操作,将设定好的快捷键删除,发现该快捷键已被注销
- 关闭
explorer.exe
,发现桌面快捷方式的快捷键是通过explorer.exe
注册的并且更新有延迟.
以上过程中RegisterHotKey
的返回结果和实际使用该快捷键是否能打开相应文件的结果相同,有人说spy++可以查看,我试了下,有道词典注册的CTRL+ALT+M
和CTRL+ALT+X
就根本截取不到,应该是没有通过WM_HOTKEY
的消息.
结果
不懂的问题太多了呢!