【问题标题】:C# replace certain string when typing in any applicationC# 在任何应用程序中键入时替换某些字符串
【发布时间】:2014-06-06 21:10:57
【问题描述】:

我想制作一个应用程序,当我在任何应用程序(在线文本框、记事本、word、电子邮件等)的任何文本字段中键入时,该应用程序将替换某个字符串。

例如,如果我在 notepad++ 中编写,然后键入 [for] 并按空格键或输入,我希望我的 C# 应用程序在后台工作,访问该字段并将该字符串替换为我的 C# 代码中的预定义字符串。

结果例如是:

for($i = 0; $i < X; $i++)
{
   // ....
}

例如,如果我正在编写一个 word 文档并输入 [FIRSTPAGE],我希望将其替换为我早期设置的随机字符串。

稍后我将设置一个应用程序,让我可以即时更改这些内容。

我尝试搜索谷歌,但我没有找到任何类似的信息。 我只需要找到一种方法来替换任何文本字段中的字符串。

希望这是有道理的。感谢您的帮助。

【问题讨论】:

  • 试过文档? STring.Replace,Regex - 不完全是不直接在那里的东西。自然没有人会为您提供完整的解决方案。
  • @TomTom 这些并不相关。
  • 您可能会找到一些拼写检查软件并将值添加到查找数据库以“自动更正”您正在查找的字符串
  • @Rawling 鉴于您对问题的描述,它们完全相关。显然,您在提出正确问题时遇到了问题,因为“在应用程序中放置字符串”是人们在最近使用 C# 的第 2 周进行培训时所做的一件小事。如果你想要更复杂的东西 - 不,没有多少人做文本编辑器。
  • @Rawling 是正确的。而且我什至没有要求一个完整的解决方案。我只是要求最重要的部分:一种监视在另一个应用程序中写入的内容并将其替换为另一个字符串的方法。

标签: c#


【解决方案1】:

创建一个全局键盘钩子,C# : Keyboard Hook 展示了如何做到这一点。

一旦创建了钩子,监视器就会处理键入单词的键盘日志。找到键入的单词后,使用SendKeys 虚拟发送击键。

【讨论】:

    【解决方案2】:

    有一个非常酷的库,叫做 Scintilla.NET - http://scintillanet.codeplex.com/

    它通常用于构建您自己的带有语法高亮支持的代码编辑器。 但它具有您所追求的自动建议功能,即:

    【讨论】:

    • OP 更关心编辑不属于他的应用程序的文本框。
    猜你喜欢
    • 2020-09-22
    • 2018-08-23
    • 2023-03-04
    • 2020-01-23
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多