Re: win32clipboard writing to clipboard on Windows 11

Liste des GroupesRevenir à cl python 
Sujet : Re: win32clipboard writing to clipboard on Windows 11
De : list1 (at) *nospam* tompassin.net (Thomas Passin)
Groupes : comp.lang.python
Date : 18. Jun 2024, 04:23:07
Autres entêtes
Message-ID : <mailman.150.1718677400.2909.python-list@python.org>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 6/17/2024 9:30 PM, MRAB via Python-list wrote:
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.
If you can make a change, and you only need to work with text on the clipboard, you could change to use pyperclip.  It also works on Linux, if you might care about that in the future.  It's available as a pip install. It's easier to use than the win32 approach.

Date Sujet#  Auteur
18 Jun 24 o Re: win32clipboard writing to clipboard on Windows 111Thomas Passin

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal