Copy highlighted text to clipboard, then use the clipboard to append it to a list
The keyboard combo Ctrl+C handles copying what is highlighted in most apps, and should work fine for you. This part is easy with pyautogui
. For getting the clipboard contents programmatically, as others have mentioned, you could implement it using ctypes
, pywin32
, or other libraries. Here I've chosen pyperclip
:
import pyautogui as pya
import pyperclip # handy cross-platform clipboard text handler
import time
def copy_clipboard():
pya.hotkey('ctrl', 'c')
time.sleep(.01) # ctrl-c is usually very fast but your program may execute faster
return pyperclip.paste()
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
var = copy_clipboard()
list.append(var)
print(list)
Example using tkinter:
from tkinter import Tk
import pyautogui as pya
def copy_clipboard():
root = Tk() # Initialize tkinter
root.withdraw() # hide the tkinter window
pya.hotkey("ctrl", "c") # copy the text (simulating key strokes)
clipboard = root.clipboard_get() # get the text from the clipboard
return clipboard
copy_text = copy_clipboard()
print(copy_text)
Tk().clipboard_get() returns the current text in the clipboard.
What soundstripe posted is valid, but doesn't take into account copying null values when there was a previous value copied. I've included an additional line that clears the clipboard so null-valued copies remain null-valued:
import pyautogui as pya
import pyperclip # handy cross-platform clipboard text handler
import time
def copy_clipboard():
pyperclip.copy("") # <- This prevents last copy replacing current copy of null.
pya.hotkey('ctrl', 'c')
time.sleep(.01) # ctrl-c is usually very fast but your program may execute faster
return pyperclip.paste()
# double clicks on a position of the cursor
pya.doubleClick(pya.position())
list = []
var = copy_clipboard()
list.append(var)
print(list)