如何在C++下 禁用 win 按钮(也就是开始菜单按钮)啊?

我们都知道按下win键(开始菜单键)的时候会立即叫出开始菜单,但我希望能够禁用这项功能。

我现在正在编写一个C++程序,这个程序的功能就是使得操作系统对win按钮不做反应,也就是按下win按钮后,开始菜单不弹出。不知高手们能否指点一二啊。。。我这个程序最终需要在win8系统下运行,如果您提供的方法支持win8的话,我更加感谢哈。。。

如果您使用的方法是是使用删除驱动,或是改注册表的话,我更感激不尽哈。。。不过其他的方法也行阿,只要能够成功地禁用win键,任何方法都可以哈。。。小弟在此先行感谢哈。。。

>>操作流程:
1、打开开始菜单的“运行”,输入“regedt32”,打开“注册表管理器”
2、在注册表里找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout项
3、点击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout项,在右边窗口新建一个“二进制值”,取
名“Scancode Map”(注意空格)
4、双击刚建好的“Scancode Map”键值,在“数值数据”栏里一字不漏地输
入“00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00”(实际输入时不需逗号)这24个数字
5、确定后,注销系统(重启系统也行),再次进入系统就会发现WIN键没反应了。

或者这样
将下面几行代码复制到记事本,保存为“禁用WIN键.reg”
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,\
00,00,00,00
>>解禁:
将下面几行代码复制到记事本,保存为“解禁WIN键.reg”
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=-
将上面两个注册表文件放到桌面,需要时点它,导入注册表就OK了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-30
可以使用HOOK 钩子进行拦截

SetWindowsHookEx (13,SetWindowsHookDoc, GetModuleHandleA1 (0), 0);追问

额。。。其实我对hook技术也是一知半解的啊,不知您是否可以给我一个更详细的代码示例什么的啊?

追答

帮你找到一个简单的例子

  并且例子已经是一个    屏蔽win按键的   用于魔兽争霸等全屏游戏的源码

第2个回答  2013-08-30
重载那个键盘响应事件就可以了。追问

额,话说我对这方面的技术不熟悉埃。。。您能给个代码示例么?

相似回答