是否有使用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文件名的元组”相关
from PythonMagick import Image
Image("img.png").write("clipboard:")
抓住Windows二进制的PythonMagick
我写这篇文章作为一个答案,尽管这只是一个步骤,可以帮助你,因为意见不具备很多的格式选项。
我写这个示例脚本:
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'
在端部)。