b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mouse_event_registerhotkey_Rtlmovememory(3)

电脑杂谈  发布时间:2017-03-02 08:13:42  来源:网络整理

目前唯一可行的解​​决方案我是绑定不同的东西,例如:按Ctrl + B,然后调用 SendKeys.SendWait(“^ V”); 然而,这是不理想的。

一个理想的解决方案是,如果我的窗户没拦截在首位的按键,只是反应。registerhotkeyregisterhotkey

解决方案

可以通过使用SetWindowsHookEx函数利用挂钩做到这一点()。

  HHOOK WINAPI调用SetWindowsHookEx(
__in INT idHook,
__in HOOKPROC lpfn,
__in HINSTANCE HMOD,
__in DWORD dwThreadId
);

基本上,你可以设置一个低级别的键盘挂钩:

  _hookHandle =调用SetWindowsHookEx(
WH_KEYBOARD_LL,
KbHookProc,//你的键盘处理
(IntPtr的)0,
0); //设置系统范围的钩子。

捕捉到全系统的键盘事件。但它也可以让你做出这些键盘事件传递到其他应用程序。为了您的特定情况下,可以定义 KbHookProc 为:

 私有静态INT KbHookProc(INT nCode,wParam中的IntPtr,IntPtr的lParam的)
{
如果(nCode> = 0)//这意味着我们可以截获该事件。
{
VAR hookStruct =(KbLLHookStruct)Marshal.PtrToStructure(
lParam的,
typeof运算(KbLLHookStruct));

//快速检查,如果Ctrl键是向下。
//见函数GetKeyState()DOCO有关标志的详细信息。
布尔ctrlDown =
函数GetKeyState(VK_LCONTROL)!= 0 ||
函数GetKeyState(VK_RCONTROL)!= 0;

如果(ctrlDown&安培;&安培; hookStruct.vkCode == 0x56)//按Ctrl + V
{
//你的自定义操作替换此。
Clipboard.SetText(“你好”);
}
}

//传递给其他键盘处理程序。使得按Ctrl + V通过。
返回CallNextHookEx方法(_hookHandle,nCode,wParam中,lParam的);
}

我编写了一个快速和肮脏的WinForms应用程序来说明这一点。对于完整的代码列表,请参见 。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-35347-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...