我可以使用clip.exe将文件复制到Python 2.7中的剪贴板,但它不会粘贴到Windows资源管理器中

问题描述 投票:0回答:2

我试图从Python程序将文件放入Windows剪贴板,以便用户可以使用Windows资源管理器将文件粘贴到所选的位置。下面的代码是将文件添加到剪贴板,文件可以使用cmd.exe粘贴,但在Windows资源管理器中,“粘贴”显示为灰色,Ctrl + V不会粘贴任何内容。

os.system("dir %s | CLIP.exe" % self.clip_folder)
windows python-2.7 clipboard explorer
2个回答
1
投票

clip.exe不会将文件放到剪贴板上。只有文字。如果你打开记事本,你可能会粘贴dir %s的输出。

您需要找到可以为您执行此操作的Python包,或者使用SetClipboardData类型调用Win32函数CF_HDROP以指定剪贴板上所需的文件列表。


0
投票

虽然,在我的Python 3.7的情况下

我可以用pythoncom和win32clipboard实现。

这是我的示例代码和github repo。您可以从Microsoft主页获取更多信息。

stg = pythoncom.STGMEDIUM()
stg.set(pythoncom.TYMED_HGLOBAL, buf)
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
try:
    print(stg)
    print(stg.data)
    win32clipboard.SetClipboardData(win32clipboard.CF_HDROP, stg.data)
    print("clip_files() succeed")
finally:
    win32clipboard.CloseClipboard()
© www.soinside.com 2019 - 2024. All rights reserved.