[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