如何以编程方式在Windows中实现系统范围的文本替换?

时间:2010-12-20 15:19:50

标签: vb.net

我有一个小的VB .Net应用程序,除其他外,试图用户替换系统范围的类型文本(hotstrings概念)。为了达到这个目的,我在我的应用程序中部署了'ahk2exe'和'AutoHotkeySC.bin'并执行了以下操作:

当用户指定新的'hotstring'时:

  1. 如果正在运行
  2. ,请终止'hotstring'exe脚本文件
  3. 将新的hotstring添加到脚本文件中(如果不存在则创建一个新的)
  4. 将编辑/新脚本文件转换为exe(使用ahk2exe)
  5. 运行新转换的脚本exe (我在那里也检查是否已经分配了hotstring)
  6. 但是,由于以下两个主要原因,我对这种方法并不完全满意:

    1. 随应用程序部署的额外资源。
    2. 滞后:系统终止进程然后重新启动它所花费的时间在我的快速计算机上至少需要5秒钟,在其他计算机上需要更多时间。这段时间远远超过用户分配热字符串,最小化/关闭窗口然后测试他/她的新热字符串所花费的时间。当用户最初没有成功时,他们会认为该过程失败。所以这种方法对用户体验不是很好。
    3. 所以,我正在寻找一种不同的方法或实现。可能正在使用键盘挂钩?或者可能添加一个实现相同的.dll库。您知道哪些资源可能有所帮助(免费或商业)?达到我预期目标的最佳方法是什么?

      非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

实现Autohotkey所做的工作将是一项非常重要的任务。

但我很确定AHK支持脚本的“自动加载”选项

谷歌搜索“autohotkey auto reload”出现在几页讨论这个概念。如果有效,你所要做的就是更新脚本文件,就是这样,AHK应该自动重新加载脚本。