Re: Clipboard Documentation

gw1500 via python-win32 <[email protected]> Wed, 1 Dec 2021 13:09:13 -0500
Newsgroups gmane.comp.python.windows
Message-ID <[email protected]>
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
> [email protected]
> https://mail.python.org/mailman/listinfo/python-win32

_______________________________________________
python-win32 mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-win32