在Windows2000下,如何屏蔽 Win + U 键 ?
如题 问题点数:20、回复次数:13Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-03 11:52:53 得分 5
使用键盘钩子。Top
2 楼wlzqi(wlzqi)回复于 2004-09-03 12:12:23 得分 0
谢谢,但是我不知道如何设置拦截条件
KBDLLHOOKSTRUCT *p=(KBDLLHOOKSTRUCT*)lParam;
如要拦截WIN 可以p->vkCode == VK_RWIN
但是WIN+U如何 写?Top
3 楼aspnetwuxueyou(SHIP IT)回复于 2004-09-03 12:44:38 得分 5
p->vkCode == (BYTE)'U'
同时用GetKeyState 判断windows键是否按下去了。Top
4 楼wlzqi(wlzqi)回复于 2004-09-03 14:19:02 得分 0
这个键好像和别的不一样,我用楼上的方法可以屏蔽Win + 其他的键(其实只要屏蔽WIn键,那他的组合键就自动会屏蔽),但就是这个不行,怎么回事呀 ?Top
5 楼pcyy(希望自己在挫折中慢慢长大)回复于 2004-09-03 15:31:22 得分 0
markTop
6 楼wlzqi(wlzqi)回复于 2004-09-03 15:52:03 得分 0
mark 什么意思?Top
7 楼jadechen(日出东方)回复于 2004-09-03 16:07:33 得分 0
呵呵
晕倒!
就是他也想知道的意思Top
8 楼crystal521(【云淡风轻】)回复于 2004-09-03 17:11:26 得分 0
使用全局键盘钩子实现Top
9 楼lianglp(寻找黄金分割点)回复于 2004-09-03 19:06:23 得分 10
用SetWindowsHookEx(WH_KEYBOARD_LL,...)就可以了
在勾子过程中,请用
KBDLLHOOKSTRUCT* pVKCode = (KBDLLHOOKSTRUCT*)lParam ;
DWORD dwVk = pVKCode->vkCode ;
if(dwVk == VK_LWIN || dwVk == VK_RWIN)
{
return TRUE ;//如果按下Win键
}
Top
10 楼lianglp(寻找黄金分割点)回复于 2004-09-03 19:11:56 得分 0
KBDLLHOOKSTRUCT* pVKCode = (KBDLLHOOKSTRUCT*)lParam ;
DWORD dwVk = pVKCode->vkCode ;
static BOOL bPressWin = FALSE ;
if(bPressWin && dwVk == 'U')
{
return FALSE ;
}
if(dwVk == VK_LWIN || dwVk == VK_RWIN)
{
bPressWin = TRUE ;
}
else
{
bPressWin = FALSE ;
}
return ::CallNextHook(...);Top
11 楼wlzqi(wlzqi)回复于 2004-09-03 22:29:10 得分 0
哈哈 ,谢谢各位,但是楼上的方法我都试过了,没用的.别的组合键都可屏蔽,就是这个键不行,怎么回事?Top
12 楼tabris17(四不象)回复于 2004-09-03 22:33:08 得分 0
这个热键是winlogon.exe进程注册的吧
类似于ctrl+alt+delTop
13 楼wlzqi(wlzqi)回复于 2004-09-06 10:02:26 得分 0
那有没有方法屏蔽呢?Top




