Quando escrevo um script AHK como este:
::abc::alphabet
Funciona perfeitamente. A única coisa é que, quando eu quero uma parte copiada do texto (algo que inclui coisas que eu quero que sejam substituídas automaticamente), ele não quer substituí-lo.
Por exemplo:
!INS::{Ctrl Down}c{Ctrl Up}{Tab 2}{Enter}{Ctrl Down}v{Ctrl Up}
Deixa-me copiar abc
, mas quando é colado, não consigo alphabet
(conforme definido anteriormente).
Existe uma maneira de substituir as palavras copiadas e coladas? Como quando uso o send
comando para enviar uma linha ou algumas palavras que incluem uma palavra que gostaria de substituir automaticamente?
Responder1
Cordas quentesafeta apenas o que você digita fisicamente. Para realizar pesquisa e substituição noPranchetavocê pode usar oRegExReplacecomando.
Abaixo está um script que copia o texto selecionado e depois cola o conteúdo modificado (após pesquisar e substituir). Acredito que foi isso que você quis dizer:
#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