win32clipboard writing to clipboard on Windows 11
MRAB
python at mrabarnett.plus.com
Mon Jun 17 21:30:46 EDT 2024
On 2024-06-17 20:27, Rob Cliffe via Python-list wrote:
> Recently I acquired a new laptop running WIndows 11; my previous one
> uses WIndows 10. I encountered a strange problem:
> I am using the win32clipboard backage (part of pywin32), and when I use
> SetClipboardData() to write text which consists ***entirely of digits***
> to the clipboard, I either get an error (not always the same error
> message) or a program crash. The problem does not appear if I use
> SetClipboardText() instead. The problem does not occur on my old
> machine (where I used the feature extensively).
>
> Sample program:
>
> from win32clipboard import *
> OpenClipboard()
> SetClipboardData(CF_UNICODETEXT, "A")
> SetClipboardData(CF_UNICODETEXT, "A0")
> SetClipboardData(CF_UNICODETEXT, "0A")
> SetClipboardText("0", CF_UNICODETEXT)
> print("OK so far")
> SetClipboardData(CF_UNICODETEXT, "0")
> CloseClipboard()
>
> Sample output:
>
> OK so far
> Traceback (most recent call last):
> File "C:\TEST*.PY", line 8, in <module>
> SetClipboardData(CF_UNICODETEXT, "0")
> pywintypes.error: (0, 'SetClipboardData', 'No error message is available')
>
> Can anyone shed light on this?
> Best wishes
> Rob Cliffe
I tried it on Windows 10 and got this:
>>> from win32clipboard import *
>>> OpenClipboard()
>>> SetClipboardData(CF_UNICODETEXT, "A")
1830508101640
>>> CloseClipboard()
>>> OpenClipboard()
>>> SetClipboardData(CF_UNICODETEXT, "0")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pywintypes.error: (6, 'SetClipboardData', 'The handle is invalid.')
>>> CloseClipboard()
It looks like it's something to memory ownership:
https://stackoverflow.com/questions/1264137/how-to-copy-string-to-clipboard-in-c
If you're putting text on the clipboard, why not just use
SetClipboardText()? That's what I do.
More information about the Python-list
mailing list