问题标签 [keyboard-hook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 我可以更改用户的键盘输入吗?
我找到了这个键盘钩子代码,我试图为我的目的稍微修改:http: //blogs.msdn.com/toub/archive/2006/05/03/589423.aspx
作为一个概述,我想让用户按下一个键,比如“E”,并让键盘返回一个不同的字符“Z”,以显示任何应用程序的焦点。
我现在更改的相关方法如下所示:
控制台正确地将其输出为:
但是,焦点应用程序仍然键入“E”而不是“Z”。为什么?我将挂钩的键盘输入更改为包含“Z”而不是“E”,并且控制台行显示它已正确更改!
据我了解,调用return CallNextHookEx(_hookID, nCode, wParam, lParam);
是将“立即打印”命令发送到打开的应用程序的原因。这不是它的工作原理吗?有什么东西阻止我输入我想要的字符吗?我知道像 AutoHotkey 这样的应用程序需要一个输入键,检查它,然后返回一个不同的字符。我如何在这里做同样的事情?
谢谢!
c# - 帮助使“Windows 输入模拟器”C# 界面正常工作
这看起来非常适合我正在尝试做的事情。我需要停止使用 SendInput() 并让其他人为我做这件事!
http://inputsimulator.codeplex.com/
问题是没有文档可以让代码像在主页上那样简单地工作。有人可以帮助我编写程序中需要的“其他代码”,以便我可以InputSimulator.SimulateKeyPress(VirtualKeyCode.SPACE);
像他在示例中那样输入吗?
我开始了:
[DllImport("InputSimulator.dll", CharSet = CharSet.Auto, SetLastError = true)]
我认为这是正确的。我还需要什么?
谢谢!
c++ - 全局键盘挂钩不起作用
我创建了一个全局键盘挂钩。
挂钩是在 DLL 中创建的。
我已经创建了一个加载这个 dll 并调用钩子 dll 的安装函数的 EXe。
当我启动 exe 时,KeyBoardHookProc 上的调试断点仅被击中一次。
除非我关闭它,否则 exe 会继续运行,但如果我从键盘输入任何其他内容,则不会调用挂钩过程。
这可能是什么原因?
这不是设置全局键盘挂钩的正确方法吗?
c# - 用于 C# 和 WPF 的高级全局键盘钩子,用于读取键盘楔形卡扫描仪
.NET 托管代码支持的唯一键盘挂钩是低级键盘挂钩 (WH_KEYBOARD_LL)。
请参阅在 WPF / C# 中使用全局键盘挂钩 (WH_KEYBOARD_LL)
目前,我的应用程序中有上述代码,因此当您刷卡时,您将获得所有击键的列表。问题在于键入分隔符,例如“%”和“;” 它会向我发送 Alt+Numpad+?这些符号对应的 WPF Key 对象。
我的问题:有没有办法让它表现得更高级,即捕获从所有键盘命令生成的字符串?
干杯!
c++ - 是否可以在 Qt 应用程序中使用 Win32 Hooks
我想知道是否可以在 Qt 应用程序中使用 win32 键盘挂钩功能(SetWindowsHookEx、SetWindowsHookEx)。
如果可能,请提供有关在 Qt 中使用 SetWindowsHookEx 、 SetWindowsHookEx 函数的示例代码。
//2010 年 2 月 18 日更新 //
我还没有弄清楚如何在 QT 中做到这一点。
但作为一种解决方法,我使用 vc++ express edition 创建了一个 win32 dll,并将我的钩子命令放在 dll 函数中。我使用 QLibrary 类从 Qt 调用该 dll 函数
init() 是被调用的 ekhook.dll 中的函数
c# - 在 vmware 虚拟机中运行时如何获取键盘输入?
我使用 vmware 工作站 6.5-7.0.1 或 vmware player 3.0.0 登录到虚拟机。我在虚拟机内部工作。然后我在虚拟机中按下一个键(例如 Delete-Key,但它应该适用于每个键)。
我想识别在虚拟机外部运行的 C# 应用程序中的“按键事件”。
你能想出任何方法来做到这一点吗?
c# - 使用低级键盘挂钩抑制任务切换键(winkey、alt-tab、alt-esc、ctrl-esc)
我正在尝试通过使用低级键盘挂钩来抑制任务切换键(例如winkey, alt+ tab, alt+ esc, ctrl+等)。esc
我正在使用以下LowLevelKeyboardProc
回调:
但是,我不知道如何抑制CTRL+ESC组合。有什么建议么?谢谢。
delphi - 键盘钩子过程的问题
背景:我的表单有一个 TWebBrowser。我想用 ESC 关闭表单,但 TWebBrowser 吃掉了击键 - 所以我决定使用键盘挂钩。
问题是表单可以同时在多个实例中打开。
无论我做什么,在某些情况下,如果我的表单打开了两个实例,关闭其中一个实例也会关闭另一个实例。
我附上了一些示例代码。关于导致问题的原因有什么想法吗?
c# - 是否可以轮询 GetKeyboardState() 作为全局键盘挂钩的替代品?
是否可以轮询GetKeyboardState()
作为全局键盘挂钩的替代品?
c# - 垃圾邮件 GC.KeepAlive(KeyboardHookPointer) 有什么问题吗?
GC.KeepAlive()
引用指定的对象,这使得它没有资格从当前例程开始到调用此方法的位置进行垃圾收集。
不太确定 GC.KeepAlive 除了简单地存储引用以使垃圾收集器不收集对象之外做什么。但是在对象上调用 GC.KeepAlive() 会永久阻止对象被收集吗?或者您是否必须每隔一段时间重新调用一次 GC.KeepAlive()(如果需要,多久一次)?我想保持我的键盘钩子活着。