使用Python/win32复制和粘贴剪贴板中的内容

5
我从这个网站下载了Python 2.6的win32版本。
以下是获取/设置剪贴板的代码:
def test():
    OpenClipboard() 
    d=GetClipboardData(win32con.CF_TEXT) # 获取剪贴板数据
    SetClipboardData(win32con.CF_TEXT, "Hello") # 设置剪贴板数据
    CloseClipboard()
if __name__ == '__main__': if sys.platform == 'win32': from win32clipboard import * import win32gui, win32con test()
使用GetClipboarData函数可以成功获取剪贴板数据,但SetClipboardData似乎无法正常工作。当我运行test()函数时,期望通过按下^V键得到"Hello",但实际上得到的是之前复制的内容。
可能出了什么问题?
4个回答

8

要将数据放入剪贴板中,您需要打开剪贴板,然后在调用SetClipboardData之前调用EmptyClipboard


3

1

使用Tkinter是否可以将数据以CF_HTML格式发送回去? - JinSnow

0
使用PowerShell将一些文件路径复制到剪贴板(简单代码)
from subprocess import check_output, CREATE_NO_WINDOW

path_1 = "C:\\temp\\000001.jpg"
path_2 = "C:\\temp\\000003.jpg"
output = check_output(
        f"""powershell "Set-Clipboard -LiteralPath '{path_1 }', '{path_2 }'" """,
        shell=False,
        creationflags=CREATE_NO_WINDOW
).decode('cp850')
print(output )

使用win32clipboard粘贴文件名(更快)
import win32clipboard
win32clipboard.OpenClipboard()
if win32clipboard.IsClipboardFormatAvailable(win32clipboard.CF_HDROP):
    filenames = win32clipboard.GetClipboardData(win32clipboard.CF_HDROP)
win32clipboard.CloseClipboard()
for filename in filenames:
    print(filename)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接