C#中使用键盘钩子的问题

朝三慕四 2010-12-10 07:56:30

public class Win32Hook
{

[DllImport("kernel32")]
public static extern int GetCurrentThreadId();

[DllImport( "user32",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int SetWindowsHookEx(
HookType idHook,
HOOKPROC lpfn,
int hmod,
int dwThreadId);

public enum HookType
{
WH_KEYBOARD = 2
}

public delegate int HOOKPROC(int nCode, int wParam, int lParam);

public void SetHook()
{
// set the keyboard hook
SetWindowsHookEx(HookType.WH_KEYBOARD,
new HOOKPROC(this.MyKeyboardProc),
0,
GetCurrentThreadId());
}

public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
CallNextHookEx(m_HookHandle, nCode, wParam, lParam); //先把消息发给系统默认处理队列
//在这里放置你的处理代码 return 0;
}
}

怎么把消息发给系统默认处理队列,就是m_HookHandle怎么写
...全文
117 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
朝三慕四 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wangwenzhuang 的回复:]
小妹妹,光复制是不行的,具体你要查查这俩api的
[/Quote]
知道....谢谢哈..
wuyq11 2010-12-10
  • 打赏
  • 举报
回复
WH_GETMESSAGE Hook
应用程序使用WH_GETMESSAGE Hook来监视从GetMessage or PeekMessage函数返回的消息。你可以使用WH_GETMESSAGE Hook去监视鼠标和键盘输入,以及其他发送到消息队列中的消息。
wangwenzhuang 2010-12-10
  • 打赏
  • 举报
回复
小妹妹,光复制是不行的,具体你要查查这俩api的
wangwenzhuang 2010-12-10
  • 打赏
  • 举报
回复
static int m_HookHandle= 0;
public void SetHook()
{
// set the keyboard hook
m_HookHandle= SetWindowsHookEx(HookType.WH_KEYBOARD,
new HOOKPROC(this.MyKeyboardProc),
0,
GetCurrentThreadId());
}

public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
CallNextHookEx(m_HookHandle, nCode, wParam, lParam); //在这里放置你的处理代码 return 0;
}
朝三慕四 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhh107 的回复:]
你是贴出来让大家学习的么
[/Quote]

网上抄的....用得不怎么舒服...
  • 打赏
  • 举报
回复

你是贴出来让大家学习的么
朝三慕四 2010-12-10
  • 打赏
  • 举报
回复

public int MyKeyboardProc(int nCode, int wParam, int lParam)
{
//在这里放置你的处理代码 return 0;
//CallNextHookEx(m_HookHandle, nCode, wParam, lParam); 就是这个函数怎么写..
//主要是m_HookHandle怎么获得
}

谢谢哈...

110,546

社区成员

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

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

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