^#v:: ; Text–only paste from ClipBoard Clip0 = %ClipBoardAll% ClipBoard = %ClipBoard% ; Convert to text Send ^v ; For best compatibility: SendPlay Sleep 50 ; Don't change clipboard while it is pasted! (Sleep > 0) ClipBoard = %Clip0% ; Restore original ClipBoard VarSetCapacity(Clip0, 0) ; Free memory ReturnCtrl-Win-V pastes the text content of the clipboard, leaving it unchanged, so Ctrl-V would still paste formatted text with pictures, if it was in the Clipboard. It is very useful if you paste text from websites into MS Word or Lotus Notes, where they look weird with unusual indentation, font, color, etc. Sleep 50 was necessary in my PC, because setting up the clipboard happens in the background, parallel to the script. If it was not finished when Ctrl-V is sent, the old content was used. Experiment with other values. Sleep 250 should be enough even for the slowest PC's.
If you know, you only need the text content of the selection, but many times, you could save time and memory if the clipboard is converted to text:
^#x:: ^#c:: ; Text-only cut/copy to ClipBoard Clip0 = %ClipBoardAll% ClipBoard = StringRight x,A_ThisHotKey,1 ; C or X Send ^%x% ; For best compatibility: SendPlay ClipWait 2 ; Wait for text, up to 2s If ErrorLevel ClipBoard = %Clip0% ; Restore original ClipBoard Else ClipBoard = %ClipBoard% ; Convert to text VarSetCapacity(Clip0, 0) ; Free memory ReturnCtrl-Win-C/X copies/cuts the selection to the clipboard and converts it to text.