我认为这个问题应该很容易解决,我之所以把它带到这里,是因为我真的觉得我已经到处寻找解决方案了。
我的代码是用C#编写的,应该可以简单地覆盖Alt-Tab热键。这一行在XP中有效,但在7中返回false:
RegisterHotKey(handle, ID__ALT_TAB, MOD_ALT, VK_TAB)); 我知道Windows7现在要求我注销热键,然后才能注册我的新热键,这就是问题所在。当我检查最后一个错误代码时,我得到代码1409,这意味着热键已经存在。但是,如果我在上面的那一行之前调用这行:
UnregisterHotKey(handle, ID__ALT_TAB)); 该行失败,最后一个错误代码设置为1419,这意味着不存在这样的热键。这些行在XP中可以工作,我可以注册一个热键,然后再注销它。我认为这是因为我试图注销一个带有错误ID的热键,因为ID_ALT_TAB是自定义的。我找不到Windows级别Alt-Tab HotKey的正确ID。任何帮助或一般的指示都将非常感谢。
发布于 2010-07-22 04:00:01
我不认为有办法做到这一点。更不用说,即使你设法在现有的热键之上注册了你的热键,当你的应用程序退出时会发生什么?突然,根本就没有Alt-Tab了。
相反,我会用另一条捷径来触发你的替换。或者Ctrl-Alt-Tab?
发布于 2010-07-22 06:50:15
不确定你是否已经见过this?这里可能需要一点C语言的工作。我认为你可以使用这段代码截取Alt+Tab笔画,然后在它所在的地方做任何你想做的事情,但我不确定。
编辑:另请参阅this,了解您可能需要转换为C#的一些较早的VB工作。
发布于 2010-07-20 23:31:10
您是否也以管理员身份运行该程序(而不仅仅是以管理员身份登录)?在XP程序不一定因为用户是管理员而获得管理员权限之后,您可以尝试右键单击Run As Administrator (或类似的)。
https://stackoverflow.com/questions/3289821
复制相似问题