探索AutoHotInterception:多设备自动化热键管理的革命性工具

探索AutoHotInterception:多设备自动化热键管理的革命性工具

去发现同类优质开源项目:https://gitcode.com/

GitHub release Github All Releases Discord Github commits (since latest release)

项目介绍

AutoHotInterception (AHI) 是一个强大的开源工具,它允许您针对特定键盘或鼠标事件运行自定义的AutoHotkey(AHK)代码,同时可以选择阻止这些事件被操作系统识别。这意味着您可以为多个键盘上的相同按键分配不同的功能,无需担心应用程序冲突。

例如,您可以连接三个键盘,并设定在第一个(主键盘)上按下F1无特殊效果,但在第二个键盘上按F1会转换为'a',而在第三个键盘上按F1则转换为'b'。不仅如此,AHI还支持键盘键、鼠标按钮和鼠标移动的处理,同时兼容AHK v1和v2版本。

项目技术分析

AHI基于Francisco Lopez编写的Interception驱动程序,该驱动程序位于Windows系统之下,能够精确捕获并处理输入设备事件。通过AHI,您可以实现对特定设备的订阅,选择是否阻断原生功能,实现高级定制。

AHI的核心特性包括:

  • 设备针对性强:允许对特定键盘或鼠标设置热键。
  • 高级控制:能够选择拦截并执行自定义代码,或者阻止事件向操作系统传播。
  • 兼容性广泛:支持AHK v1与v2,以及键盘键、鼠标按钮和鼠标的相对和绝对移动事件。

项目及技术应用场景

AHI的应用场景多种多样,无论是在工作还是娱乐中,都能提高效率。例如:

  • 多键盘管理:在编程时,可以将代码补全等快捷键分配给额外的键盘,提高工作效率。
  • 游戏优化:在游戏中,可以设置特定按键在游戏专用键盘上触发特殊操作,而不会干扰到其他软件。
  • 残障辅助:通过定制化的热键配置,帮助残障人士进行日常计算机操作。
  • 实验室环境:在实验环境中,可以通过不同设备控制实验流程。

项目特点

  1. 精准控制:AHI允许对每个独立设备的按键和鼠标事件进行细致的定制,使多设备交互更加灵活。
  2. 安全设置:虽然拥有深度操作权限,但需谨慎使用以防止锁定设备。建议备用不受阻挡的键盘或鼠标。
  3. 易用性:提供了监控应用,方便查找和管理设备的VID/PID,轻松设置设备参数。
  4. 兼容性:不仅支持USB设备,还适用于非USB接口的传统设备,如PS/2键盘和鼠标。
  5. 社区支持:有详细的论坛讨论帖和 Discord 社区提供帮助,用户可以获得及时的技术支持。

准备好探索这个全新的自动化世界了吗?立即尝试AutoHotInterception,让您的设备操作达到新的高度!

去发现同类优质开源项目:https://gitcode.com/

模拟鼠标和盘 注意:不支持Windows 8 / 8.1。 Interceptor是Windows盘驱动程序的包装器(包装http://oblita.com/Interception)。 使用驱动程序,Interceptor可以模拟按和鼠标点击... 使用DirectX的游戏,通常不接受使用SendInput()的击 Windows的受保护区域,如Windows登录屏幕或UAC调暗屏幕 任何应用程序 因为驱动程序模拟击和鼠标单击,所以目标窗口必须处于活动状态(即,在发送击和鼠标点击时,不能在另一个窗口上执行多任务)。 如何使用 下载并构建此项目并在项目中引用其DLL。 下载'interception.dll',这是一个由驱动程序作者编写的独立库。将它放在与可执行文件相同的目录中。这是必需的。 从作者的网页下载并安装“install-interception.exe”。安装后重新启动计算机。 在您的代码中,要加载驱动程序,请调用(阅读下面的代码注释;您必须设置过滤模式以捕获按事件或发送按操作!): Input input = new Input(); // Be sure to set your keyboard filter to be able to capture key presses and simulate key presses // KeyboardFilterMode.All captures all events; 'Down' only captures presses for non-special keys; 'Up' only captures releases for non-special keys; 'E0' and 'E1' capture presses/releases for special keys input.KeyboardFilterMode = KeyboardFilterMode.All; // You can set a MouseFilterMode as well, but you don't need to set a MouseFilterMode to simulate mouse clicks // Finally, load the driver input.Load(); 做你的东西。 input.MoveMouseTo(5, 5); // Please note this doesn't use the driver to move the mouse; it uses System.Windows.Forms.Cursor.Position input.MoveMouseBy(25, 25); // Same as above ^ input.SendLeftClick(); input.KeyDelay = 1; // See below for explanation; not necessary in non-game apps input.SendKeys(Keys.Enter); // Presses the ENTER key down and then up (this constitutes a key press) // Or you can do the same thing above using these two lines of code input.SendKeys(Keys.Enter, KeyState.Down); Thread.Sleep(1); // For use in games, be sure to sleep the thread so the game can capture all events. A lagging game cannot process input quickly, and you so you may have to adjust this to as much as 40 millisecond delay. Outside of a game, a delay of even 0 milliseconds can work (instant key presses). input.SendKeys(Keys.Enter, KeyState.Up); input.SendText("hello, I am typing!"); /* All these following characters / numbers / symbols work */ input.SendText("abcdefghijklmnopqrstuvwxyz"); input.SendText("1234567890"); input.SendText("!@#$%^&*()"); input.SendText("[]\\;',./"); input.SendText("{}|:\"?"); // And finally input.Unload(); 笔记: BadImageFormatException如果您没有为解决方案中的所有项目(包括此项目)使用正确的体系结构(x86或x64),则可能会获得。因此,您可能必须下载此项目的源代码才能将其重建为正确的体系结构。这应该很简单,构建过程应该没有错误。 您必须从http://oblita.com/Interception下载'interception.dll' 。 如果你已经完成了以上所有操作(正确安装了拦截驱动程序,将interception.dll放在你的项目文件夹中),你仍然无法发送击: 驱动程序有一个限制,即它不能在不接收至少一次击的情况下发送击。这是因为驱动程序不知道盘是哪个设备ID,因此它必须等待接收击以从击中推断出设备ID。 总之,在发送击之前,请始终按盘一次。点按任意。然后你可以发送击。这不适用于接收击,因为通过接收击,您当然已经按下了一个。 MoveMouseTo()和MoveMouseBy()完全忽略盘驱动程序。它使用System.Windows.Forms.Position来设置和获取游标的位置(它为下面的各个函数调用标准的Win32 API)。 原因是,在探索盘驱动程序的鼠标移动功能时,我注意到它没有按像素单位移动光标,而是似乎通过加速移动光标。当我想将光标移动到某个位置时,这会不断产生不一致的值。因为Win32游标设置API通常不被游戏等阻止,所以我发现只需调用这些标准API即可,而无需使用驱动程序。请注意,这仅适用于设置光标位置。拦截光标仍然可以正常工作。例如,您可以使用Interceptor反转鼠标的x和y轴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平奇群Derek

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值