New submission from Cees Timmerman:
# http://stackoverflow.com/a/25678113/819417
def copy(data):
if not isinstance(data, unicode):
data = data.decode('mbcs')
OpenClipboard(None)
EmptyClipboard()
hCd = GlobalAlloc(GMEM_DDESHARE, 2 * (len(data) + 1))
pchData =
Cees Timmerman added the comment:
A copy of my test program at
https://gist.github.com/CTimmerman/133cb80100357dde92d8
--
Added file: http://bugs.python.org/file37366/test_clipboard_win.py
___
Python tracker rep...@bugs.python.org
Amaury Forgeot d'Arc added the comment:
(you swapped the unicode values: \U0001f4cb is copied as \U0001f400)
On Windows, strings have changed in 3.3. See in
https://docs.python.org/3/whatsnew/3.3.html, len() now always returns 1 for
non-BMP characters.
The call to GlobalAlloc should use the
Amaury Forgeot d'Arc added the comment:
Better use utf-16-le encoding:
len(data.encode('utf-16-le')) + 2
otherwise the encoded bytes start with the \fffe BOM.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue22999