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