如何在不使用Autohotkey中的剪贴板的情况下粘贴文本块

时间:2015-01-11 08:17:11

标签: clipboard autohotkey paste

在Autohotkey程序中,是否可以“粘贴”文本内容而无需使用剪贴板?

我知道我可以简单地使用发送或模拟按键,但这会导致我的IDE自动完成功能出现问题。

我尝试使用Clipboard方法并发送“粘贴”命令,但这也导致了问题,因为我必须保存当前的剪贴板内容等(太长时间无法解释,与我的问题无关。)

我通过文档,我似乎无法找到任何关于此事的内容,我想知道你们是否知道答案?

此致

4 个答案:

答案 0 :(得分:1)

据我所知,AHK中没有任何内部剪贴板。如果您有除文本之外的任何内容,或者如果您想保留格式,那么使用诸如ControlGetText之类的命令将会出错。

这是我通常完成此类任务的方式。

#+c::
oCB := ClipboardAll  ; save clipboard contents
Send, ^c
ClipWait,1
SplashTextOn, 160, 20, Clipboard, New Clipboard Copied
Sleep 2000
SplashTextOff
Return
                ;Now, pressing Control-V pastes the new text, and can be used as often as desired


#v::                ;And pressing Windows-V copies the old back to the clipboard
ClipBoard := oCB            ; return original Clipboard contents
ToolTip, Old Clipboard `nRestored
Sleep 1000
ToolTip
oCB :=                  ;Clears variable
Return

这也是lintalist所指的基本要素。但是通过使用变量ClipboardAll,您应该可以将任何内容保存到剪贴板,包括格式,图像等。 查看http://www.autohotkey.com/docs/misc/Clipboard.htm以获取有关此命令的更多信息。 另外,请在AutoHotKey论坛上向pajenn大喊这个代码的种子。 http://www.autohotkey.com/board/topic/39280-get-selected-text/

答案 1 :(得分:0)

我宁愿评论这个问题,但没有足够的分数......

如果IDE支持代码段。也许让Autohotkey(AHK)在IDE中创建一个临时片段。发送命令以插入此临时片段,然后删除临时片段。凌乱的解决方案但可能有效。

答案 2 :(得分:0)

(与Oq01相同但尚未发表评论)如果您不想使用剪贴板,因为您想恢复原始剪贴板内容,可以使用http://ahkscript.org/docs/misc/Clipboard.htm#ClipboardAll页面中的建议:将当前剪贴板内容存储在变量中,更新剪贴板,粘贴它并恢复原始内容。

也许您的IDE支持多个剪贴板,剪贴板历史记录或标记列表,如果可以在程序中使用宏或脚本,也可以使用它们。

答案 3 :(得分:0)

在这方面你没有很多选择,但你确实有一些选择。

选项:

大多数时候剪贴板是可行的,因为使用ClipboardAll时没有数据丢失

并非所有程序/编辑器都允许您使用ControlSetText,因此可能不是您可以使用的选项,但如果您的IDE编辑控件是标准的Windows控件,您可以使用它

最后一个选项我不能说,因为我们不知道你试图用这个程序来做...

制作一个简单的multi Clipboard snippet's持有人

的教程