问题标签 [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.

0 投票
2 回答
8601 浏览

c# - C# 非常简单的键盘钩子

我试图在 C# 中创建一个自定义宏程序,我想知道如何创建一个低级键盘挂钩。我环顾四周,发现了一些,但我不明白它们是如何工作的,或者我如何自定义它:/

谁能告诉我如何创建一个基本上可以做到的键盘钩子:

一旦按下任何键,int keycode 就会设置为一个方法(我认为 VK 代码是我需要的?)

我在网上找到的例子似乎太复杂了:/

谢谢 :)

0 投票
1 回答
1973 浏览

c# - 使用远程桌面后键盘挂钩停止工作

我有以下问题:

在我启动任何远程桌面会话后,我的全局键盘钩子停止工作,即使会话关闭钩子根本不起作用。

这是我的钩子的代码

有谁知道如何解决这个问题?

0 投票
1 回答
3648 浏览

macos - mac的钩子,特别是键盘钩子

我最近一直在尝试为 mac 制作一个键盘记录器(因为我在做一个)只是为了好玩,无意使用它。从字面上看,我已经四处寻找 10 多个小时,并且发现 Mac 挂钩的零文档。谁能指出我正确的方向?

0 投票
3 回答
5666 浏览

.net - VB.NET 在最小化时检测按键

我希望能够检测到用户何时在我的程序之外按下 F10 或 Ctrl+F10,并且在收到按键后,它会将文本发送到他们当前选择的任何内容(例如文本框)。如何以最简单的方式实现这一点?

0 投票
0 回答
1709 浏览

winapi - 如何检查 SetWindowsHookEx 挂钩是否仍在工作?(Win7错误解决方法)

我正在用 MS VisualC++ 编写程序。我设置了一个键盘挂钩hHook = SetWindowsHookEx(13,MyProc,GetModuleHandle(NULL),0);

Win7 中有一个我可以重现的错误,它禁用了我的钩子。当这个错误发生时,hHook仍然是TRUE,但UnhookWindowsHookEx(hHook)返回FALSE

但是,我只想在它被禁用时重新启动钩子,所以我不能使用UnhookWindowsHookEx.

如何检查钩子是否仍然有效?类似的东西GetHookStatus(hHook)

我发现这个 Win7 错误是由一些超时或“垃圾收集”引起的,但我更容易检查钩子状态并在需要时重新启动。我不是专业人士,只是将编码作为一种爱好,主要是出于个人需求。

谢谢你。

0 投票
3 回答
3117 浏览

java - 使用 Java 获取全局键盘输入

如何获取在我的 java 程序之外的任何程序中输入的内容。有没有办法?例如,我正在运行我的 java 程序,然后我开始在记事本中输入,我可以通过我的 java 程序看到正在输入的内容。

0 投票
1 回答
4111 浏览

c# - C# - 如何使用 SendKeys.Send 发送带有 SHIFT 键的小写字母?

我正在为我的项目使用这个键盘挂钩。我无法在按下 SHIFT 修饰键的情况下使用 SendKeys.Send() 发送小写字母。我的应用程序需要(例如)如果用户按下K按钮“a”应该发送,如果他按下SHIFT+ K“b”应该被发送。代码是:

但它发送"B"(大写字母)而不是"b",即SHIFT键将发送的击键“b”更改为大写。即使在将Keys.Shift添加到钩子之后也会发生这种情况。

我尝试了很多方法,包括使用e.SupressKeyPress SendKeys("b".toLower())并将上面的代码放在 KeyUp 事件中,但在静脉中。

请帮助我,我很沮丧,我的应用程序开发在这一点上受到打击。

0 投票
1 回答
1501 浏览

c - 键盘挂钩:更改键码

我确实钩住了一些进程的键盘。现在我需要更改发送到进程的关键消息。

例如:从小写到大写并相反。

我怎样才能做到这一点?

0 投票
1 回答
1646 浏览

windows-7 - WIN7 键盘挂钩在另一个用户帐户中停止工作?

我使用 C# 创建了自己的家长控制应用程序来监控我孩子的活动。它在后台静默记录所有键盘输入和屏幕,只有任务栏图标的 gui。到目前为止,我只是让它在我的管理员帐户中运行,并且每个人都共享同一个帐户并且它工作正常。问题是,随着孩子们长大,他们找到了一种从任务管理器中杀死它的方法。所以,我需要使用更复杂的方式来保护我的应用程序。我想我可以通过为每个孩子创建一个单独的标准帐户来轻松解决这个问题,并且我可以设置我的应用程序以管理员身份运行以监控他们的所有活动。然而,我遇到了很多问题。

  1. 切换到其他用户帐户后,键盘挂钩似乎停止工作。这是真的吗?我认为这是全局挂钩 - 它只是用户帐户中的全局吗?

  2. 屏幕捕获也不适用于其他用户帐户。这是我的代码和

它在 g.CopyFromScreen 失败,出现错误“句柄无效”:

非常感谢您的帮助。

0 投票
1 回答
1180 浏览

c# - 如何使用全局键盘钩子和 postmessage() 模拟键组合(例如 shift+left 用于选择文本)?

我正在使用全局键盘挂钩(WH_KEYBOARD_LL)并将键发送到浏览器句柄。我能够让用户按下一个键,但无法按下组合键(例如 shift+left 用于选择文本)。代码如下...

我读了一些我们可以通过使用 wParam 获得按键组合的地方,这会产生错误,如上面的代码所示。请建议如何避免该错误或其他替代方法。