python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)
2024-08-29 23:05:42
问题现象:
通过打断点,一步步调试可以正常复制和粘贴剪贴板数据。但是直接运行会报错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)
最新文章
- 在sharepoint2013中如使用PowerView
- 【我是老中医】codeblocks无法编译的问题解决方法
- IntelliJ IDEA 目录技巧
- Redis设计与实现-主从、哨兵与集群
- Android 编程下如何调整 SwipeRefreshLayout 的下拉刷新距离
- 各个版本的spring jar包
- Android Studio怎么删除项目
- SR4000笔记
- 模块工具类--utils
- 安装ecshop提示“安装数据失败”或者“创建管理员帐号”
- 身在魔都的她,该不该继续";坚持";前端开发?
- Web缓存(一) - HTTP协议缓存
- toString
- centos7下tomcat8.5安装部署与优化
- Cesium Up and Running Error: Cannot find module 'express'
- jQuery事件--change([[data],fn])、on(events,[selector],[data],fn)和hover([over,]out)
- 一个有趣的nginx问题引发的小问题
- Spring组件扫描 <;context:component-scan/>;
- postgresql分区表探索(pg_pathman)
- vi命令速查图