首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将字符串复制到剪贴板?

如何将字符串复制到剪贴板?
EN

Stack Overflow用户
提问于 2009-02-23 22:38:03
回答 18查看 196.3K关注 0票数 232

我正在尝试创建一个基本的Windows应用程序,它从用户输入中构建一个字符串,然后将其添加到剪贴板中。如何使用Python将字符串复制到剪贴板?

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2010-11-17 19:31:07

实际上,对于这个简单的任务,pywin32ctypes似乎有点过头了。Tkinter是一个跨平台的图形用户界面框架,默认情况下随Python一起提供,并具有剪贴板访问方法和其他很酷的东西。

如果你只需要把一些文本放到系统剪贴板上,这就行了:

from Tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.update() # now it stays on the clipboard after the window is closed
r.destroy()

仅此而已,不需要纠结于特定于平台的第三方库。

如果您使用的是Python3,请将TKinter替换为tkinter

票数 329
EN

Stack Overflow用户

发布于 2010-08-07 11:33:26

您还可以使用ctype来利用Windows API,从而避免使用大量的pywin32包。这是我使用的(请原谅我糟糕的风格,但想法是存在的):

import ctypes

# Get required functions, strcpy..
strcpy = ctypes.cdll.msvcrt.strcpy
ocb = ctypes.windll.user32.OpenClipboard    # Basic clipboard functions
ecb = ctypes.windll.user32.EmptyClipboard
gcd = ctypes.windll.user32.GetClipboardData
scd = ctypes.windll.user32.SetClipboardData
ccb = ctypes.windll.user32.CloseClipboard
ga = ctypes.windll.kernel32.GlobalAlloc    # Global memory allocation
gl = ctypes.windll.kernel32.GlobalLock     # Global memory Locking
gul = ctypes.windll.kernel32.GlobalUnlock
GMEM_DDESHARE = 0x2000

def Get():
  ocb(None) # Open Clip, Default task

  pcontents = gcd(1) # 1 means CF_TEXT.. too lazy to get the token thingy...

  data = ctypes.c_char_p(pcontents).value

  #gul(pcontents) ?
  ccb()

  return data

def Paste(data):
  ocb(None) # Open Clip, Default task

  ecb()

  hCd = ga(GMEM_DDESHARE, len(bytes(data,"ascii")) + 1)

  pchData = gl(hCd)

  strcpy(ctypes.c_char_p(pchData), bytes(data, "ascii"))

  gul(hCd)

  scd(1, hCd)

  ccb()
票数 42
EN

Stack Overflow用户

发布于 2016-03-23 20:36:54

你可以使用优秀的pandas,它有一个内置的剪贴板支持,但是你需要通过一个DataFrame。

import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/579687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档