在Autohotkey程序中,是否可以“粘贴”文本内容而无需使用剪贴板?
我知道我可以简单地使用发送或模拟按键,但这会导致我的IDE自动完成功能出现问题。
我尝试使用Clipboard方法并发送“粘贴”命令,但这也导致了问题,因为我必须保存当前的剪贴板内容等(太长时间无法解释,与我的问题无关。)
我通过文档,我似乎无法找到任何关于此事的内容,我想知道你们是否知道答案?
此致
答案 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持有人
的教程