zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    C++雾中风景1:友元类与面向对象
    NFS服务器的安装与配置
    未来工作相关
    python 函数
    pycharm、sublime个性化设置
    hadoop中HDFS的NameNode原理
    Cat搭建遇坑记
    美团点评CAT监控平台研究
    阿里sentinel源码研究深入
    阿里熔断限流Sentinel研究
  • 原文地址:https://www.cnblogs.com/xiaohuhu/p/9131317.html
Copyright © 2011-2022 走看看