在蟒蛇剪贴板存储文件(Storing a file in the clipboard in pyth

2019-09-18 02:00发布

是否有使用win32clipboard模块存储在蟒蛇Windows剪贴板文件的引用的方式。 我的目标是在一个方式,让透明粘贴图片。 如果我拖放“PNG”文件到OneNote中或我复制该文件,然后将其粘贴到OneNote中,这似乎保留透明度。 据我所知,剪贴板不能存储的透明图像这就是为什么它必须是一个文件的引用。

我的研究表明,它可能涉及win32clipboard.CF_HDrop属性,但我不知道。

所以,仅仅总结,我的目标是有一些Python代码,我可以点击它使用我的名为“img.png”例如桌面的特定文件。 其结果是,“img.png”获取存储在剪贴板中,可以粘贴到其他程序。 从本质上讲,同样的行为,如果我选择在我的桌面上,右键点击,选择“复制”的文件。

编辑:这页似乎暗示有使用win32clipboard.CF_HDrop莫名其妙道: http://timgolden.me.uk/pywin32-docs/win32clipboard__GetClipboardData_meth.html

它说:“CF_HDROP”与“Unicode文件名的元组”相关

Answer 1:

from PythonMagick import Image
Image("img.png").write("clipboard:") 

抓住Windows二进制的PythonMagick



Answer 2:

我写这篇文章作为一个答案,尽管这只是一个步骤,可以帮助你,因为意见不具备很多的格式选项。

我写这个示例脚本:

import win32clipboard as clp, win32api

clp.OpenClipboard(None)

rc= clp.EnumClipboardFormats(0)
while rc:
    try: format_name= clp.GetClipboardFormatName(rc)
    except win32api.error: format_name= "?"
    print "format", rc, format_name
    rc= clp.EnumClipboardFormats(rc)

clp.CloseClipboard()

然后我选择在资源管理器中的图像文件,并复制它; 然后,该脚本将报告以下可用剪贴板格式:

format 49161 DataObject
format 49268 Shell IDList Array
format 15 ?
format 49519 DataObjectAttributes
format 49292 Preferred DropEffect
format 49329 Shell Object Offsets
format 49158 FileName
format 49159 FileNameW
format 49171 Ole Private Data

这种“首选DROPEFFECT”似乎可疑,虽然我远从Windows专家。 我第一次尝试用FileNameW,虽然,因为这可能会为你做这项工作(我没有安装OneNote,抱歉)。 看来,预计作为编码为“UTF-16乐”以空字符数据只是全路径名(即编码为'\0\0'在端部)。



文章来源: Storing a file in the clipboard in python