JAVA用键盘钩子_c#键盘钩子

c#键盘钩子:

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);

[DllImport("user32", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]

public static extern int CallNextHookEx(int hhk,int nCode,int wParam,int lParam);

[DllImport("user32", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]

public static extern bool UnHookWindowsHookEx(int hhk);

public enum HookType

{

WH_KEYBOARD = 2

}

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

public int hhk;

public void SetHook()

{

// set the keyboard hook

hhk = SetWindowsHookEx(HookType.WH_KEYBOARD, new HOOKPROC(this.MyKeyboardProc), 0, GetCurrentThreadId());

}

public int MyKeyboardProc(int nCode, int wParam, int lParam)

{

//在这里放置你的处理代码

int iresult = 0;

if (nCode<=0)

{

iresult = CallNextHookEx(hhk, nCode, wParam, lParam);

return iresult;

}

if ((wParam >= 48 && wParam<=57)||(wParam >= 65 && wParam<=90)||(wParam >= 97 && wParam<=122))

{

Form1.rrrr += Convert.ToChar(wParam);

return 0;

}

return 0;

}

public bool UnHook()

{

return UnHookWindowsHookEx(hhk);

}

}

使用:

Win32Hook hook = new Win32Hook();

hook.SetHook();

this.richTextBox2.Text = rrrr;

hook.UnHook();

(adamhtmei)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值