[python-win32] Clipboard Documentation
gw1500
i_was_yah00ed at yahoo.com
Wed Dec 1 13:09:13 EST 2021
Hi Dietmar,
Thanks. I lot to it but I'll give it a try.
On 12/1/2021 11:33 AM, Dietmar Schwertberger wrote:
> I've been using the code below for 20 years now for text copy & paste.
> No guarantees, though.
>
>
> Regards,
>
> Dietmar
>
>
> def copy_to_clipboard(text, window_handle=0):
> """copy_to_clipboard(window_handle, text):
> copy a string to the clipboard."""
> win32clipboard.OpenClipboard(window_handle)
> try:
> win32clipboard.EmptyClipboard()
> if sys.version_info.major==2:
> is_unicode = isinstance(text, str)
> else:
> is_unicode = True
> if is_unicode:
> win32clipboard.SetClipboardData(win32clipboard.CF_UNICODETEXT, text)
> else:
> win32clipboard.SetClipboardText(text)
> finally:
> win32clipboard.CloseClipboard()
>
> _formats = {}
> def _format_to_number(format):
> if not format in _formats:
> number = win32clipboard.RegisterClipboardFormat(format)
> _formats[format] = number
> return _formats[format]
>
> #def copy_from_clipboard(format=win32clipboard.CF_TEXT, window_handle=0):
> def copy_from_clipboard(format=win32clipboard.CF_UNICODETEXT,
> window_handle=0):
> win32clipboard.OpenClipboard(window_handle)
> if isinstance(format, str):
> format = _format_to_number(format)
> try:
> ret = win32clipboard.GetClipboardData(format)
> except TypeError:
> return None
> finally:
> win32clipboard.CloseClipboard()
> return ret
>
>
>
> #def check_clipboard_format(format=win32clipboard.CF_TEXT,
> window_handle=0):
> def check_clipboard_format(format=win32clipboard.CF_UNICODETEXT,
> window_handle=0):
> if isinstance(format, str):
> format = _format_to_number(format)
> win32clipboard.OpenClipboard(window_handle)
> try:
> return win32clipboard.IsClipboardFormatAvailable(format)
> finally:
> win32clipboard.CloseClipboard()
>
>
> def get_clipboard_formats(window_handle=0):
> format = 0
> formats = []
> win32clipboard.OpenClipboard(window_handle)
> standard_formats = {}
> for n in dir(win32clipboard):
> if not n.startswith("CF_"): continue
> standard_formats[getattr(win32clipboard, n)] = n[3:]
> try:
> while True:
> format = win32clipboard.EnumClipboardFormats(format)
> if not format:
> break
> if format in standard_formats:
> formats.append(standard_formats[format])
> else:
> formats.append(
> win32clipboard.GetClipboardFormatName(format) )
> finally:
> win32clipboard.CloseClipboard()
> return formats
>
>
> _______________________________________________
> python-win32 mailing list
> python-win32 at python.org
> https://mail.python.org/mailman/listinfo/python-win32
More information about the python-win32
mailing list