100问 我的全局钩子为什么捕不到组合键????

liduke 2005-01-26 02:34:56
自定义对象得到键盘消息中的对应值
public struct KBDLLHOOKSTRUCT
{
public int vkCode;
public int scanCode;
public int flags;
public int time;
public int dwExtraInfo;
}
if((wparam==WM_SYSKEYDOWN)&&(OnKeyPress!=null))
{
byte[] keyState = new byte[256];
GetKeyboardState(keyState);//在这里我怎么得到组合键的值,如Alt+a
byte[] buffur = new byte[2];
int i;
i = ToAscii(keystruct.vkCode,keystruct.scanCode,keyState,buffur,keystruct.flags);
if (i==1)
{
KeyPressEventArgs e =new KeyPressEventArgs((char)buffur[0]);
OnKeyPress(this,e);// 自定义事件
}
}
...全文
286 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nga96 2005-02-12
  • 打赏
  • 举报
回复
偶只会普通 的钩子,全局的不会
egxsun 2005-02-06
  • 打赏
  • 举报
回复
up
wwei69 2005-02-06
  • 打赏
  • 举报
回复
应该使用 WH_KeyboardLL 钩子
钩子的回调函数的lParam参数为KBDLLHOOKSTRUCT结构

...
KBDLLHOOKSTRUCT kbParam = (KBDLLHOOKSTRUCT)
Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
KeyEventArgs keymod = new KeyEventArgs((Keys)kbParam.vkCode);
//*屏蔽Alt+A
if(keymod.Alt==true||kbParam.KeyCode==Keys.A)
return -1;//*吃掉这个消息
zoti 2005-02-06
  • 打赏
  • 举报
回复
zealic 2005-02-05
  • 打赏
  • 举报
回复
看到了你的消息,~回答

kbParam.keycode指的是vkcode
liulxmooo 2005-01-31
  • 打赏
  • 举报
回复
up
liduke 2005-01-28
  • 打赏
  • 举报
回复
up
isaacyh 2005-01-27
  • 打赏
  • 举报
回复
这有个看Shift组合键的
Control.ModifierKeys & Keys.Shift
cdo 2005-01-27
  • 打赏
  • 举报
回复
if ( KeyDown!=null && ( wParam ==WM_KEYDOWN || wParam==WM_SYSKEYDOWN ))
{
Keys keyData=(Keys)MyKeyboardHookStruct.vkCode;
KeyEventArgs e = new KeyEventArgs(keyData);
KeyDown(this, e);
}

类似这样可以判断功能键。
liduke 2005-01-27
  • 打赏
  • 举报
回复
而且我在KeyUp时,e.alt始终是假啊
liduke 2005-01-27
  • 打赏
  • 举报
回复
kbParam.KeyCode中的keycode是指的是哪个值啊vkcode 还是scancode啊
zealic 2005-01-26
  • 打赏
  • 举报
回复
应该使用 WH_KeyboardLL 钩子
钩子的回调函数的lParam参数为KBDLLHOOKSTRUCT结构

...
KBDLLHOOKSTRUCT kbParam = (KBDLLHOOKSTRUCT)
Marshal.PtrToStructure(lParam, typeof(KBDLLHOOKSTRUCT));
KeyEventArgs keymod = new KeyEventArgs((Keys)kbParam.vkCode);
//*屏蔽Alt+A
if(keymod.Alt==true||kbParam.KeyCode==Keys.A)
return -1;//*吃掉这个消息

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧