python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)

Posted 最萌小胡胡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)相关的知识,希望对你有一定的参考价值。

问题现象:
通过打断点,一步步调试可以正常复制和粘贴剪贴板数据。但是直接运行会报错pywintypes.error: (1418, ‘GetClipboardData‘,线程没有打开的剪贴板)

问题原因:
原因是直接运行的话,没办法控制main线程的运行顺序,可能出现setText()还未关闭剪贴板,getText()就打开了剪贴板的情况。 但是打了断点之后,就可以按照代码中所写的那样的顺序来执行了。

解决方法:
在调用Clipboard.setText(content)之后,一定要加time.sleep(3)
尼玛,这个坑卡了我好几天。。。

源码如下:
#encoding = utf-8
import win32clipboard as w
import win32con,time

class Clipboard(object):
@staticmethod
def getText():
w.OpenClipboard()
d = w.GetClipboardData(win32con.CF_UNICODETEXT)
w.CloseClipboard()
return d

@staticmethod
def setText(aString):
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
w.CloseClipboard()

if __name__ == "__main__":
content = "xiaohuhu"
Clipboard.setText(content)
time.sleep(3) #一定一定要加暂停,要不然会提示pywintypes.error: (1418, ‘GetClipboardData‘,线程没有打开的剪贴板)
a = Clipboard.getText()
print(a)


































以上是关于python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)的主要内容,如果未能解决你的问题,请参考以下文章

AWS SAM-获取错误消息:pywintypes.error:(5,'CreateFile','访问被拒绝。')

为啥 beyond compare 不能打开java的class文件,提示转换错误

CAD无法复制到剪贴板怎么解决?

8.6 项目:多重剪贴板 - 没有实例操作验证时,真是讨厌透了文中的“齐活了”三个字。

excel不能复制粘贴,提示“不能打开剪贴板”

pywintypes.com_error: (-2147221008, '尚未调用 CoInitialize。', None, None)