【问题标题】:Autohotkey Script that edits selected text without using the clipboard无需使用剪贴板即可编辑选定文本的 Autohotkey 脚本
【发布时间】:2017-08-25 03:14:10
【问题描述】:

我想编写一个自动热键文本来编辑用户选择的文本,并在每行的开头附加四个空格。

如果我只是有一个包含多行的字符串,那么任务会很容易。

我在 Autohotkey 官方论坛上搜索了一个 solution。该解决方案将文本复制到剪贴板,可能会删除剪贴板内容。

有没有办法在不使用剪贴板的自动热键中做到这一点,我可以直接对所选文本进行操作?

【问题讨论】:

  • 从控件中获取文本当然是可能的。但是,什么控制?你其实不说。例如,如果控件是网页编辑框,AHK 允许您访问 DOM,并且您可以使用选择器来获取元素及其内容。但是,如果您担心使用剪贴板,为什么不直接存储当前内容,然后执行您的操作,然后从保存的变量中恢复剪贴板?
  • @PGlim :基本上是具有焦点的 DOM。网页的 DOM 是否与在 Evernote 中编辑文本有根本不同?是否可以以相同的方式访问两者?
  • 重复之前提出的问题:stackoverflow.com/questions/36067563/…(虽然没有回答)

标签: autohotkey


【解决方案1】:

以下是一些基本的剪贴板技术:

ClipSaved := ClipboardAll   ;  Save the entire clipboard to a variable of your choice (in this case, ClipSaved).

;  Here is where you put your code

Clipboard := ClipSaved   ;  Restore the original clipboard.
ClipSaved =   ;  Free the memory in case the clipboard was very large.

更多:https://autohotkey.com/docs/misc/Clipboard.htm

【讨论】:

  • 唉,如果您有任何机会将图像复制到剪贴板或其他较大的东西,这会使 PC 很快冻结,因为在 AHK 中复制/恢复剪贴板的速度有多慢。但是,不幸的是,我不知道有任何其他可靠的方式来获取选定的文本。
  • 当然,是的(例如图片)。注意ClipWait 有一个非文本内容的标志,并且一些“持久”剪贴板实用程序(包括一些用 AHK 编写的 - 检查 autohotkey.com/docs/misc/Clipboard.htm 底部的剪贴板帮助)将已经将图像保存到剪贴板堆栈,所以你可以放弃那个保存步骤,只需从堆栈中删除空间检查剪辑,然后您就可以从顶部的图像开始。
猜你喜欢
  • 2010-09-06
  • 1970-01-01
  • 2015-03-09
  • 2019-06-06
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 2018-01-15
  • 2020-05-15
相关资源
最近更新 更多