Я видел этот вопрос, и я следил за каждым шагом, изменяя код в соответствии со своими требованиями, а именно Python3, Pillow и ctypes. Чем меньше библиотек, тем лучше.
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()
Это вырезанный код из моего скрипта, который, я думаю, является тем же кодом, что и вопрос, перенесенный на мои требования. При выполнении он должен скопировать текущий рабочий стол в буфер обмена. Вместо этого я получаю это:
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)
Мне очень жаль, что я задаю здесь такой (вероятно) простой вопрос, но я действительно не знаю, что именно не получается, а ctypes - не мое.