c# 调用全局钩子一个的问题
我现在写的是一个按下键盘上的b键会返回[的程序,但是我现在按下b,不知道为什么返回的是两个[[描述下代码差不多是这样的HookProc的一个委托KeyBoardHookS...
我现在写的是一个按下键盘上的b键会返回[的程序,但是我现在按下b,不知道为什么返回的是两个[[
描述下代码差不多是这样的
HookProc的一个委托
KeyBoardHookStruct的一个结构
private void button1_Click(object sender, EventArgs e)
{
Hook_Start();
}
public void Hook_Start()
{
// 安装键盘钩子
if (hHook == 0)
{
KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);
hHook = SetWindowsHookEx(13, KeyBoardHookProcedure, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);
}
}
KeyBoardHookProc这边我是这么写的
public static int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
KeyBoardHookStruct input = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));//键盘
if (input.vkCode == (int)Keys.B)
{
keybd_event(219, 0, 0, 0);
keybd_event(219, 0, 2, 0);
return 1;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
自己写出来了,呵呵,不过还是谢谢啊 展开
描述下代码差不多是这样的
HookProc的一个委托
KeyBoardHookStruct的一个结构
private void button1_Click(object sender, EventArgs e)
{
Hook_Start();
}
public void Hook_Start()
{
// 安装键盘钩子
if (hHook == 0)
{
KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);
hHook = SetWindowsHookEx(13, KeyBoardHookProcedure, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);
}
}
KeyBoardHookProc这边我是这么写的
public static int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam)
{
KeyBoardHookStruct input = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));//键盘
if (input.vkCode == (int)Keys.B)
{
keybd_event(219, 0, 0, 0);
keybd_event(219, 0, 2, 0);
return 1;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
自己写出来了,呵呵,不过还是谢谢啊 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询