选择并附加单词

问题描述 投票:0回答:1

我想在按住某个快捷键的同时选择不相邻的单词,将它们(以空格分隔)附加到一个字符串中,并将最终附加的字符串放入剪贴板。

类似:

{Control_down}::

OnDoubleClick{ my_appended_string += Str(current_text_selection) }

{Control_up}

Clipboard := my_appended_string 
return

这样就可以了。

autohotkey
1个回答
-1
投票
; LCtrl+DoubleClick on words in text
<^LButton Up::
    if (A_PriorHotKey = A_ThisHotKey and A_TimeSincePriorHotkey < DllCall("GetDoubleClickTime"))
    {
        ; KeyWait, LCtrl            ; after releasing LCtrl 
        clip_old := clipboard       ; save the clipboard to the variable clip_old (as text))
        clipboard := ""             ; empty the clipboard (start off empty to allow ClipWait to detect when the text has arrived)
        Click 2                     ; select a word by doubleclick
        Send, {Ctrl down}c{Ctrl up} ; copy the selected word
        ClipWait 1                  ; wait for the clipboard to contain data. 
        If (!ErrorLevel)            ; If NOT ErrorLevel ClipWait found data on the clipboard
        {
            clip_new := clip_old A_Space clipboard              ; append the new copied text to clip_old 
            clipboard := clip_new 
        }
        else
        {
            MsgBox, No text copied
            clipboard := clip_old               
        }
        ToolTip, %clipboard%
        Sleep, 1000
        ToolTip
    }
Return

编辑:

也试试这个

; Press F1 after putting the mouse pointer over the word to copy

F1 Up::
    clip_old := clipboard       ; save the clipboard to the variable clip_old (as text))
    clipboard := ""             ; empty the clipboard (start off empty to allow ClipWait to detect when the text has arrived)
    Click ; on the word under the mouse pointer
    Send, {Ctrl Down}{Left}{Ctrl Up}{Ctrl Down}{Shift Down}{Right}{Shift Up}{Ctrl Up} ; select the word
    Sleep, 300
    Send, {Ctrl down}c{Ctrl up} ; copy the selected word
    ClipWait 1                  ; wait for the clipboard to contain data. 
    If (!ErrorLevel)            ; If NOT ErrorLevel ClipWait found data on the clipboard
    {
        clipboard := Trim(clipboard) ; remove leading/trailing spaces and tabs
        clip_new := clip_old A_Space clipboard ; append the new copied text to clip_old 
        clipboard := clip_new 
    }
    else
    {
        MsgBox, No text copied
        clipboard := clip_old               
    }
    ToolTip, %clipboard%
    Sleep, 1000
    ToolTip
Return
© www.soinside.com 2019 - 2024. All rights reserved.