当我试图将图像发送到剪贴板时,遇到了alpha通道的丢失,所描述的here解决方案都不能与我正在使用的软件一起工作,但是当我将粘贴png文件复制到这个软件中时,alpha通道似乎被保留了下来。
考虑到这一点,我想在Windows资源管理器允许的文件上模拟Ctrl+C。使用Clipview我发现字段{win32clipboard
设置此字段
import win32clipboard
win32clipboard.OpenClipboard(0)
file1="C:\\Users\\User\\Desktop\\test.png"
win32clipboard.SetClipboardData(15, file1)
win32clipboard.CloseClipboard()
我没有发现任何错误,但当我尝试使用这个新的剪贴板内容时,它不起作用,因为正如所述,thereunicode文件名元组必须存储在CF_HDROP
字段中。在
我不知道该怎么办。我也试过
file1= (unicode('C:\\Users\\User\\Desktop\\CANEVAS\\test.png'),)
但我有个错误:
TypeError: expected a readable buffer object.
documentation for CF_HDROP上写着
win32剪贴板.GetClipboardData具有对CF_HDROP的内置支持。它解码STGMEDIUM和DROPFILES结构以生成文件名的元组。在
该文档没有说明SetClipboardData具有从文件名元组构造STGMEDIUM和DROPFILES结构的相应代码。在
我对Python或它的FFI了解不多,不知道构造结构并将它们传递给SetClipboardData函数有多简单。或者如果有一个现有的库可以为你做这件事。在
相关问题 更多 >
编程相关推荐