클립보드 내용을 자동으로 바꾸는 AHK 스크립트

클립보드 내용을 자동으로 바꾸는 AHK 스크립트

다음과 같이 AHK 스크립트를 작성할 때:

::abc::alphabet

그것은 매력처럼 작동합니다. 유일한 점은 텍스트의 복사된 부분(자동 교체하려는 내용이 포함된 부분)을 원할 때 교체를 원하지 않는다는 것입니다.

예를 들어:

!INS::{Ctrl Down}c{Ctrl Up}{Tab 2}{Enter}{Ctrl Down}v{Ctrl Up}

복사할 수 있지만 붙여넣을 때 (앞서 정의한 대로) abc얻지 못합니다 .alphabet

복사해서 붙여넣은 단어를 대체할 수 있는 방법이 있나요? 명령 을 사용하여 send자동으로 바꾸고 싶은 단어가 포함된 줄이나 단어를 보낼 때처럼요?

답변1

핫스트링실제로 입력하는 내용에만 영향을 미칩니다. 검색 및 바꾸기를 수행하려면클립보드당신은 사용할 수 있습니다RegEx바꾸기명령.

아래는 선택한 텍스트를 복사한 다음 수정된 내용을 붙여넣는 스크립트입니다(검색 및 바꾸기 후). 나는 이것이 당신이 의미한 바라고 믿습니다:

#x:: ;[Win]+[X]

;Empty the Clipboard.
    Clipboard =
;Copy the select text to the Clipboard.
    SendInput, ^c
;Wait for the Clipboard to fill.
    ClipWait

;Perform the RegEx find and replace operation,
;where "ABC" is the whole-word we want to replace.
    haystack := Clipboard
    needle := "\b" . "ABC" . "\b"
    replacement := "XYZ"
    result := RegExReplace(haystack, needle, replacement)

;Empty the Clipboard
    Clipboard =
;Copy the result to the Clipboard.
    Clipboard := result
;Wait for the Clipboard to fill.
    ClipWait

;-- Optional: --
;Send (paste) the contents of the new Clipboard.
    SendInput, %Clipboard%

;Done!
    return

관련 정보