在windows(7)中,当ICtrl+C
任何文本时获取此错误:
Traceback (most recent call last): File "T:\Desktop\nutty.py", line 45, in selected_word = get_clip() File "T:\Desktop\nutty.py", line 30, in get_clip clip = str(text.value.decode("utf-8")) AttributeError: 'NoneType' object has no attribute 'decode'
from tkinter import Tk
import ctypes, time, os
def set_clip(string=""):
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append(string)
print("Set data:"+string)
r.destroy()
def clr_clip():
r = Tk()
r.withdraw()
r.clipboard_clear()
r.destroy()
def get_clip():
global clip
CF_TEXT = 1
kernel32 = ctypes.windll.kernel32
user32 = ctypes.windll.user32
user32.OpenClipboard(0)
if user32.IsClipboardFormatAvailable(CF_TEXT):
data = user32.GetClipboardData(CF_TEXT)
data_locked = kernel32.GlobalLock(data)
text = ctypes.c_char_p(data_locked)
clip = str(text.value.decode("utf-8"))
kernel32.GlobalUnlock(data_locked)
else:
clip = "null"
user32.CloseClipboard()
return clip
fps=10
previous=""
previous_set_word=""
end=False
clr_clip()
while not end:
vocab = open("vocab.txt", 'r').readlines()
selected_word = get_clip()
if selected_word != previous:
print("Data:"+selected_word)
for line in range(len(vocab)):
word = vocab[line].strip("\n")
if selected_word == word and not vocab[line] == previous_set_word:
set_clip(vocab[line+1].strip("\n"))
previous_set_word = vocab[line+1]
previous = selected_word
time.sleep(1/fps)
我不知道为什么会这样,因为我被告知,这将得到数据罚款!你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐