Copiar imagen PIL / PILLOW en el portapapeles de Windows
He vistoesta pregunta y seguí cada paso, cambiando el código para satisfacer mis requisitos, que son Python3, Pillow y ctypes. Mientras menos bibliotecas, mejor.
import ctypes
from PIL import ImageGrab, Image
from io import BytesIO
user32 = ctypes.windll.user32
img = ImageGrab.grab()
output = BytesIO()
img.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
user32.OpenClipboard()
user32.EmptyClipboard()
user32.SetClipboardData(user32.CF_DIB, data)
user32.CloseClipboard()
Ese es el código eliminado de mi script que, creo, es el mismo código en la pregunta adaptada a mis requisitos. Cuando se ejecuta, debe copiar el escritorio actual en el portapapeles. Consigo esto en su lugar:
File "C:\Users\Gcq\Documents\python\Screen\Screen.py", line 132, in shot
user32.OpenClipboard()
ValueError: Procedure probably called with not enough arguments (4 bytes missing)
Lo siento, estoy haciendo una pregunta tan (probablemente) fácil aquí, pero realmente no sé qué está fallando, y ctypes no es lo mío.