问题标签 [keyhook]

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 投票
1 回答
2143 浏览

c# - C#中的全局键钩

我想制作一个新的应用程序,我可以通过外部 GUI 的按键进行控制。如果按键被按下,首先应该有一个文本字段发生变化。最后我想在 keyPress 上启动一个计时器。我用谷歌搜索并访问了 Stack Overflow,但没有发现任何东西可以帮助我真正解决我的问题。

我在 Stack Overflow 上找到了一篇帖子并尝试了代码。但我只是在控制台中获取密钥,不知道如何在失焦的 GUI 上请求它。

任何帮助都将是非常可观的。

0 投票
0 回答
173 浏览

c++ - Windows 键钩冻结

当我运行这个程序时,我的计算机似乎死机并且无法执行任何操作。我认为这是因为我出于某种原因总是调用键盘辅助函数?这可能与我在程序底部的暂停有关还是更多。暂停头和函数中包含的所有内容都是getchar()

0 投票
2 回答
714 浏览

c++ - 当用户离开应用程序时卸载键盘挂钩

我试图检测用户 alt 选项卡何时离开我的窗口。我尝试了几条消息(WM_ACTIVATE、WM_KILLFOCUS、WM_ACTIVATEAPP、WM_NCACTIVATE、WM_CANCELMODE 和 WM_SYSCOMMAND 检查 SC_MINIMIZE)。但同样的问题仍然存在。发生以下情况。

  1. 我的应用程序是焦点,我按住 alt 并按 tab。
  2. 下一个窗口出现。
  3. 我一直按住 alt,然后再次按 tab,但这一次,只有 tab 被识别,所以我最终在新窗口中按 tab,而不是像通常的行为那样再次按 alt。

我正在使用低级键盘钩子,如果我卸载上面描述的这种 alt 选项卡行为完美地工作。一旦用户以这种方式离开我的窗口,我基本上想卸载键盘挂钩。一旦我在另一个窗口中释放 alt 选项卡,我的窗口就会收到我要查找的几条消息,并且该挂钩已被卸载。但是,当您以这种方式握住钥匙时,在安装挂钩时它不会按预期工作。

0 投票
1 回答
615 浏览

c# - Global keyhook for mediakeys in C#

With the following RegisterHotKey function, I can globally hook normal key-modifier combinations:

Great article about it and full source code here: http://www.liensberger.it/web/blog/?p=207

But the question is, how do I hook Media Keys, those play/pause/next/previous -keys found in keyboards and pc remotes? I have googled and googled, but without any luck.

0 投票
1 回答
7516 浏览

c# - SendKeys 的替代品?

我创建了一个键盘应用程序,它保持在顶部,但不获取焦点,以便在触摸屏上它会通过 SendKeys 将您按下的任何键转发到活动应用程序。

它适用于我尝试过的每个应用程序......当然,除了我真正需要它使用的那个是销售点应用程序。POS 应用程序允许用户在键盘上输入项目代码,但它没有一个很好的触摸屏键盘,所以这就是我尝试为其创建外部键盘的原因(因为我无权访问 POS 应用程序代码)。

当你第一次尝试它时它确实有效,但它是非常零星的。直接使用键盘总是有效的,所以我不确定为什么 SendKeys 有时只适用于这个应用程序。我尝试了几种实现方式...在按下时发送键,当用户按下键盘上的回车按钮时将它们完全发送,将键复制到剪贴板,然后使用发送键执行 Ctl-V然后输入。

我还有哪些其他选项可以模拟另一个应用程序的按键?SendKeys 似乎不能完美地模拟按键,所以我可以利用较低级别的机制吗?

我应该提一下,当它不起作用时,我会从 POS 应用程序中听到哔哔声,就好像我按下了一个无效的键一样。所以这并不是说它没有得到某种输入,而是显然它没有得到我正在以与实际键盘相同的方式发送它的键。

0 投票
0 回答
221 浏览

timer - VB.Net 2010 中用于启动/停止计时器的简单键盘挂钩

Ctrl + '我制作了一个程序,即使程序没有焦点,也需要能够响应(即控制+撇号)的按键。

Ctrl + '用于启动和停止计时器。

代码将类似于(我的示例只是一些伪代码):

我已经读过使用键盘挂钩是可行的方法,这是我的首选方法,但是我什至难以理解我阅读的教程并且在使用虚拟键码时遇到了麻烦。

我在这里找到了一个不错的教程,但是我缺乏知识使我很难将其转化为我需要的内容。

任何特定于我需要的帮助或示例对我来说都是非常有益的。这是我完成我的程序所需的最后一件事,我觉得一个更具体的例子,我的需要,将帮助我分解和更好地理解这一点。

0 投票
1 回答
254 浏览

java - Java JNA- Jar application hangs in 32 bit windows system

Here's a screenshot application. Compiled with 1.8 JDK, works perfectly well in 64 bit systems, but lags and hangs in two iterations in 32 bit systems.

Basically this application takes a screenshot using robot class, takes the file name from user which is a URL. Truncates and removes all illegal characters from it and saves it using a save as dialog box with time-stamp as the prefix.

I am using Windows Low Level KeyHook to initiate the screenshot with PrtSc key.

Error in 32 bit systems: It only takes 2 screenshots and then does not respond when I press PrtSc for the 3rd time. Can JFrame cause any problems, it certainly loads up slow. Should I use any alternate text box than JFrame or is it because I have complied in java 1.8 jdk 64 bit environment, which wont work in lower versions of jdk or 32 bit systems.

0 投票
0 回答
78 浏览

java - 如何分析我的 Java 应用程序以发现性能瓶颈?

此应用程序(.jar 文件)使用机器人类截取屏幕截图,从用户那里获取文件名,该文件名是 JFrame 输入框中的 URL。截断并删除其中的所有非法字符,并使用带有时间戳作为前缀的另存为对话框将其保存。

我正在使用 Windows Low Level KeyHook 使用 PrtSc 键启动屏幕截图。

应用程序很慢。事件调用和事件操作之间的间隔为 1 秒。

0 投票
1 回答
150 浏览

c# - 如何在 Powerpoint 2013 插件(用 C# 开发)中获取“ctrl c”或鼠标复制事件?

下面的代码不是在 MS Powerpoint 中捕获字符类型,它只是在 Powerpoint 之外,我如何才能在此代码中捕获“控制副本”或“鼠标右键单击副本”?

下面的代码不是在 MS Powerpoint 中捕获字符类型,它只是在 Powerpoint 之外,我如何才能在此代码中捕获“控制副本”或“鼠标右键单击副本”?

下面的代码不是在 MS Powerpoint 中捕获字符类型,它只是在 Powerpoint 之外,我如何才能在此代码中捕获“控制副本”或“鼠标右键单击副本”?

0 投票
0 回答
1685 浏览

vb.net - 低级键盘钩子不检测击键 VB.NET

我已经在 Visual Basic 2010 (.NET Framework v4.0) 中成功练习了低级键盘挂钩,然后将相同的挂钩项目移动到 Visual Studio 2017 (.NET Framework 4.5.2),现在它没有检测到任何击键. 我已经尝试将目标框架更改为 v4.0 但没有结果。

有我的代码:

和 KeyboardHook 类:

Form1 上设置了断点

但是在我的键盘上打字时应用程序永远不会中断。我很困惑,因为它曾经在 VB2010 中工作......有人知道如何解决这个问题吗?

提前致谢 ;)