如何在低级别拦截和纠正按键?

时间:2009-02-24 19:05:33

标签: macros autocorrect

我一直在输入“t eh”而不是“the”,这当然是让我纠正自己所花费的时间的烦恼。

显而易见的答案是“学会打字,noob!”或者至少更慢地和/或更正确地打字。这个错误非常一致,所以看来我已经为这种模式训练了我的肌肉记忆。

但是我想知道是否有可能编写一个小型的Windows可移植脚本或应用程序,当它检测到错误的序列时,退格并在它适用的层上自动更正它任何键盘输入。

  • C#是否可以访问拦截全系统按键的操作系统层?
  • 我是否会遇到Vista的UAC问题?
  • 我是否正在重新发明轮子(即,是否有我可以修改或开箱即用的开源工具)?

在DOS中,这种事情非常简单,人们可以制作TSR(终止和驻留)程序,例如,通过特殊的按键为您提供屏幕上的计算器。更不用说基于这个概念的许多实用笑话程序(为怪物拨“M”)......

当然,我会永远不会建议这样的实用程序可以这样用于同事......

- 亚当

4 个答案:

答案 0 :(得分:4)

在Windows上,您可以使用AutoHotKey。这允许您创建小脚本或宏来自动化和纠正错误类型之类的事情。

在lifehacker上张贴了一个用法,它使用了常见的错误字词并对其进行了纠正。它位于http://lifehacker.com/192506/download-of-the-day-universal-autocorrect


更新每条评论:据我所知,这是免费软件和Windows。

上面的脚本只是它可以做的一个例子。 AutoHotkeys网站

提供了大量脚本

答案 1 :(得分:2)

我建议使用AutoHotKey。如果您以前从未使用过,请快速阅读教程:http://www.autohotkey.com/docs/Tutorial.htm

您正在寻找的功能称为“hotstrings”。 http://www.autohotkey.com/docs/Hotstrings.htm

在您的情况下,您的脚本将类似于:

::teh::the

就是这样!在其他行上添加您想要更正的其他内容。可以编译AutoHotkey脚本,因此您无需在所有计算机上安装AutoHotKey。

这是一个非常酷的计划。它主要用于(制作自定义热键)岩石!这些脚本是系统范围的,所以你也可能想制作一个热键来关闭它们!

编辑:在评论中,有人提到他实际上键入了“t eh”(其中有一个空格),我想知道是否还需要一些额外的工作。我只是测试它,它工作正常。只需安装autohotkey,然后创建扩展名为.AHK的文件即可。在该文件中放入以下行

::t eh::the

并保存文件。然后双击AHK文件以使用您的脚本加载AutoHotKey(您将在系统托盘中看到绿色方块以告知您它正在运行)。它应该工作正常!

答案 2 :(得分:0)

是的,您可以使用C#中的pinvoke命令拦截低级操作系统命令。我建议你看一下http://www.pinvoke.net。编码并不容易,但确实有效。

答案 3 :(得分:0)

我建议学习打字更慢。我也受到“teh”和“ahve”的影响,部分原因是自动更正给了我宽大处理。如果你强迫自己重新训练,那么在使用别人的机器时你就不会处于劣势。

更不用说当你需要写“t eh”并被一个过分热心的“纠正者”阻止时的不幸事件。