真 ·openclipboard失败解决办法
程序员文章站
2022-03-15 22:57:54
...
真 ·openclipboard失败解决办法
这个问题一直困扰我很久, 在网上找了半天没有全是些垃圾办法和乱复制粘贴办法, 自己持续优化了很久才解决.
我是写python的,需要在一个软件上复制一些东西到我的程序里边, 第一次剪贴板错误, 说的是打开指定类型错误.最开始以为是编码问题, 后边在复制的时候就出想弹框,openclipboard失败.
开始错误为:
Traceback (most recent call last):
File "main_pyauto.py", line 354, in <module>
auto.get_blance()
File "main_pyauto.py", line 189, in get_blance
copy_data = self.getCopyText()
File "main_pyauto.py", line 129, in getCopyText
copy_text = wc.GetClipboardData()
TypeError: Specified clipboard format is not available
import win32clipboard
win32clipboard.OpenClipboard()
win32clipboard.GetClipboardData()
一直不清楚win32clipboard.OpenClipboard()这个里边填编码参数, 我也一直以为是参数导致的,源码给的参数选项有很多, 我一个不认识, 网上没找到相应的说明
都不太明白什么意思, 后来发现, 填不填参数都我来说都影响不大, 或者没有影响.(前期我还用穷举法来填这个参数,真的是瓜皮程序员)
后来发现可能是剪贴板没有关闭,或者剪贴板混用造成的.用过之后关闭且清空.并且是每次都做了
win32clipboard.EmptyClipboard()
win32clipboard.CloseClipboard()
以上又导致一个问题, 不知道为毛有了多线程错误, 这个不是我代码里边的问题, 我都没用多线程, 具体情况都是, 我把获取到的文本, 首先判断是否获取成功,成功后打印, 结果运行时判断的步骤都已经运行过了,并且打印出来,在下一步具体操作时,居然程序显示没获取到.
奇了他妈妈的大怪!!!
同一名字变量有不同值.???我满头的大包.(现在我都没明白)
解决办法:
不过后来弄了很久, 在调用复制方法时, 首先清空, 我用的是os方法清空.后在用win32的东西清空.剪贴板问题得以解决, 没有弹框, 也没有编码问题, 便利几十遍都跑的通, 不过应该就直接跑第一句就可以了.os.system(“echo off | clip”).
其实就是terminal运行echo off | clip, 其他语言也应该差不多.
import win32clipboard as wc
import os
os.system("echo off | clip")
wc.OpenClipboard()
wc.EmptyClipboard()
wc.CloseClipboard()
不知道你们的问题是否能通过这样解决. 我的目前这样解决了, 就是用之前清空剪贴板, 用之后也清空一遍.
上一篇: FPGA学习笔记之串口收发
下一篇: 关于安装pytorch的那点事
推荐阅读
-
Python安装第三方库PIL时失败的解决办法
-
SQLServer2008安装失败的解决办法
-
微信开发Token验证失败或请求URL超时问题解决办法
-
支付宝无法实名认证怎么办 支付宝提示身份信息匹配失败的两种解决办法详细介绍
-
360驱动大师驱动下载安装失败现象的解决办法介绍
-
HP M401驱动安装失败 一直显示连接设备无法安装的解决办法
-
关于phpmailer邮件发送失败以及解决办法
-
C# 读取含中文字符的数据,失败原因,和解决办法
-
AirPods和AirPods Pro单只耳机播放失败怎么办 无法正常播放音频解决办法
-
SQL Server 2008用'sa'登录失败,启用'sa'登录的解决办法