问题标签 [mousekeyhook]

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 回答
152 浏览

c# - 如何获取收到鼠标双击的应用程序的句柄?

是否可以获得用户单击(或在我的情况下双击)的窗口句柄?

添加更多细节:我有一个应用程序,当用户启动时,它会监视特定的热键(CTL+SHIFT+T)。按下时,我的应用程序将键盘命令发送回原始应用程序 (CTL-C),然后从剪贴板中获取文本并记录文本。
我正在尝试通过双击来扩展/替换键盘序列。这可能吗?

0 投票
2 回答
314 浏览

c# - 在mousekeyhook中,鼠标钩子后面的“ext”是什么意思?

例如,有 IKeyboardMouseEvent.MouseDown 和 IKeyboardMouseEvent.MouseDownExt。有什么区别?

谢谢

0 投票
0 回答
135 浏览

c# - MouseKeyHook“需要强名称”

我实现了一个使用 Nuget 包 MouseKeyboardActivityMonitor 的应用程序。到目前为止一切正常。我现在想构建一个安装项目以在其他计算机上部署应用程序。因此我不得不签署我的项目。从那以后,我不能再像它所说的那样构建项目了(从德语翻译成英语):

“找不到文件或程序集 'MouseKeyboardActivityMonitor ...' 或依赖项。需要具有强名称的程序集。(来自 HRESULT 的异常:0x80131044)”。

有人知道如何给这个第三方包起一个强名称,以便我可以再次构建项目吗?

0 投票
0 回答
700 浏览

c# - 按键事件 + 修饰键无法正常工作

我已经看到无数帖子和文章声称可以做我期望他们为我做的事情,遗憾的是,到目前为止,他们都没有给我解决方案或帮助我。

你看,我正在使用:https ://github.com/gmamaladze/globalmousekeyhook作为键盘挂钩......

现在,正如GlobalHookKeyPress事件中的用法所解释的那样,我正在尝试实现:

要捕获CTRL+ <'Put Captured KeyCode Here'> (例如CTRL+ A),但是,当我这样做时,它只是将“ CTRL+”写入 textBlock,而不是捕获的 Key ...现在如果我尝试这样做:


它正确地写了CTRL+“KeyCode”但是,它给了我正确的一个,但是以它的“数字”形式,现在,我必须做什么才能使它成为“ CTRL+ A”,而不是“ CTRL+ 1”?


我尝试了一种方法,但它似乎过于复杂并且可能没用,因为可能有更好的方法来实现我正在寻找的东西,这就是我所做的:

现在,我的想法是在你看到的地方......显然继续写作(案例 19 表示“ CTRL+ S”等等......)但正如你所看到的,它最终对于任务来说太乏味了...... . 对于这种特殊情况,您会建议做什么。


更新#1

好的,所以我一直在挖掘,这让它工作了,我不知道怎么做,但它只是做到了

现在我遇到了一个小问题......为了注册按键,我必须按两次目标键......甚至按另一个键然后回到目标键然后它会注册,就像一些有点延迟,让我解释一下自己...

我想按CTRL+A我按CTRL+ A,它什么也没做,但是如果我按CTRL+ B,它似乎什么也没做,它什么也不显示,但是如果我按CTRL+B然后回到CTRL+ A,它正确显示CTRL+ A,希望你理解我...现在我不知道发生了什么,但我正在挖掘,如果你碰巧知道,请与我分享,这将非常有帮助:D

干杯!

0 投票
1 回答
383 浏览

c# - ManagementObjectSearcher 在全局挂钩中不起作用

当我尝试在鼠标事件处理程序中获取所有正在运行的进程时,它会引发异常。首先我认为问题仍然存在,因为我async在鼠标事件处理程序之前放置了关键字,但事实并非如此,因为非异步方法也会引发异常。

我正在使用MouseKeyHook库。

异常消息:

附加信息:为此 RuntimeCallableWrapper 转换到 COM 上下文 0x1ac936a0 失败,并出现以下错误:由于应用程序正在调度输入同步调用,因此无法进行传出调用。(来自 HRESULT 的异常:0x8001010D (RPC_E_CANTCALLOUT_ININPUTSYNCCALL))。

我从中获取所有进程的事件处理程序:

通过使用获取所有进程ManagementObjectSearcher

如您所见,调用searcher.Get(). 注意:MouseUp如果在鼠标事件处理程序 ( )之外使用此方法,则不会出现任何问题。

0 投票
0 回答
281 浏览

c# - 鼠标键挂钩中的 CallbackOnCollectedDelegate

我正在使用https://github.com/gmamaladze/globalmousekeyhook进行程序。钩子触发了,但一段时间后出现了 CallbackOnCollectedDelegate,我不知道如何从 github 更改代码。我无法将帮助转换为我的代码CallbackOnCollectedDelegate 在 globalKeyboardHook 被检测到

Visual Studio(德语)中的失败消息是:

CallbackOnCollectedDelegate ist aufgetreten。消息:Der Assistent für verwaltetes Debugging ""CallbackOnCollectedDelegate"" hat ein 问题 ""C:\Users\Admin\ownCloud\GRANT-ZIM\Code_Grant\Filter\GRANTExample\bin\x64\Debug\GRANTExample.vshost.exe""节日。Zusätzliche Informationen: Für den von der Garbage Collection gesammelten Delegate vom Typ "Gma.System.MouseKeyHook!Gma.System.MouseKeyHook.WinApi.HookProcedure::Invoke" wurde ein Rückruf durchgeführt。Dies kann Anwendungsabstürze, Datenbeschädigung und -verlust zur Folge haben。Beim Übergeben von Delegate an nicht verwalteten Code müssen die Delegate von der verwalteten Anwendung beibehalten werden, bis sichergestellt ist, dass sie nie aufgerufen werden。

使用的代码是:

0 投票
1 回答
980 浏览

c# - Equivalent to IsDisposed using c# wpf

I am working on a custom keycasting program for tut videos and I am using MouseKeyHook and I am using the example code found here: https://github.com/gmamaladze/globalmousekeyhook/blob/vNext/Demo/Main.cs to get the basic construction working.

As the example was intended for win forms I am having trouble with one line in particular. I have made everything work by omitting - if (IsDisposed) return; line 176.

How do i replicate this code for wpf?

EDIT: This was not related to garbage collection it is because if the form is disposed textBoxLog will throw a ObjectDisposedException.

0 投票
1 回答
150 浏览

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

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

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

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

0 投票
1 回答
686 浏览

c# - 使用 MouseKeyHook 时未触发 KeyPress 事件

几天前我开始使用 MouseKeyHook 库来拦截我们正在构建的应用程序的键盘按钮(应用程序使用数字键盘作为输入通过 Akka 发送特定消息等)。

我已经设法使用控制台应用程序让它快速工作并在那里注册所有内容,但是一旦我将实现移动到特定服务中,它就停止工作(事件没有被触发)。

这是代码示例:

KeypadService 是 Autofac 在应用程序启动时创建的(启动应用程序是一个控制台应用程序)。

构造函数被击中,一切都在构造函数内部执行。

关于为什么它可能不会发射的任何线索?任何帮助表示赞赏!

0 投票
1 回答
387 浏览

c# - 通过 mousekeyhook C# 检测按键的绝对最小代码

我想在 C# 中创建按键日志。我找到了keymousehook,但我不知道如何使用它。我找不到全面的指南或博客文章。

文档也不是很有帮助。检测按键的绝对最小代码是多少?它可以在控制台应用程序中使用吗?