码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-06-04 00:59:51      阅读:673      评论:0      收藏:0      [点我收藏+]

标签:暂停   复制   eth   粘贴   erro   name   size   通过   pen   

问题现象:
通过打断点,一步步调试可以正常复制和粘贴剪贴板数据。但是直接运行会报错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',线程没有打开的剪贴板)

标签:暂停   复制   eth   粘贴   erro   name   size   通过   pen   

原文地址:https://www.cnblogs.com/xiaohuhu/p/9131317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!