gpt4 book ai didi

autohotkey - 不使用剪贴板获取所选文本

转载 作者:行者123 更新时间:2023-12-04 15:55:22 25 4
gpt4 key购买 nike

我正在尝试在 AutoHotKey 中创建一个非常基本的文本包装器,以便在编程时使用。我让它使用剪贴板来复制所选文本,修改它,然后粘贴它,但我试图避免使用剪贴板,因为它不能与我的剪贴板管理器很好地结合使用。有谁知道如何做到这一点?

!r:: ;Alt+R+%Char% = Wrap Text with Input Characters
ClipSave := ClipboardAll
Send ^c
Input, Char, L1
if ("" . Char = "{")
{
clipboard = {%clipboard%}
}
else if ("" . Char = "[")
{
clipboard = [%clipboard%]
}
else if ("" . Char = "(")
{
clipboard = (%clipboard%)
}
else
{
clipboard = %Char%%clipboard%%Char%
}
StringReplace, clipboard, clipboard,%A_SPACE%",", All
Send ^v
Clipboard := ClipSave
ClipSave =
return

注:我见过 ControlGet, text, Selected并试图实现它,但它不起作用(没有错误,只是没有操作)。如果有人对此有解决方案,那将解决我的问题。

最佳答案

Credit to Solar on the AutoHotkey forums提出以下解决方案

使用 ControlGet 从编辑控件中获取文本

这种方法有点不可靠,因为它只适用于特定的控件类型。但是,它可能是您正在寻找的解决方案,因为它根本不使用剪贴板。

WinActive("A")                           ; sets last found window
ControlGetFocus, ctrl
if (RegExMatch(ctrl, "A)Edit\d+")) ; attempt copying without clipboard
ControlGet, text, Selected,, %ctrl%
}

这是一个建议的解决方案,它尝试使用 ControlSend 复制文本,但如果需要,则退回使用剪贴板作为备份。
WinActive("A")                           ; sets last found window
ControlGetFocus, ctrl
if (RegExMatch(ctrl, "A)Edit\d+")) ; attempt copying without clipboard
ControlGet, text, Selected,, %ctrl%
else { ; fallback solution
clipboardOld := Clipboard ; backup clipboard
Send, ^c ; copy selected text to clipboard
if (Clipboard != clipboardOld) {
text := Clipboard ; store selected text
Clipboard := clipboardOld ; restore clipboard contents
}
}
MsgBox % text

关于autohotkey - 不使用剪贴板获取所选文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36067563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com