我认为这个问题应该很容易解决,我把它带到这里是因为我真的感觉我已经到处寻找解决方案了。
我的代码是用C#编写的,应该只是简单地覆盖Alt-Tab热键。这行在XP中有效,但在7中返回false:
RegisterHotKey(handle, ID__ALT_TAB, MOD_ALT, VK_TAB));
我知道Windows 7现在要求我在注册新的热键之前取消注册热键,这就是问题所在。 当我检查最后一个错误代码时,我得到代码1409,表示热键已经存在。然而,如果我在上面的那一行之前调用这一行:
UnregisterHotKey(handle, ID__ALT_TAB));
这行代码失败了,最后的错误代码设置为1419,意味着没有这样的热键存在。这些行在XP中可以正常工作,我可以注册一个热键,然后注销它。我认为是因为我试图使用错误的ID注销热键,因为ID_ALT_TAB是自定义的。我还没有找到Windows级别的Alt-Tab热键的正确ID。非常感谢任何帮助或一般性的指针。