我正在编写一个python脚本,它将检查剪贴板内容并在控制台中打印它们。以下是我正在使用的脚本。
messageSort="synchCall".
当我在没有复制任何文本的情况下运行它时,我收到以下错误:
import time
from tkinter import Tk
while True:
r = Tk()
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(2)
据我所知,剪贴板中没有内容。复制任何文本后,代码运行正常。为了克服这个问题,我按以下方式重写了代码:
return self.tk.call(('selection', 'get') + self._options(kw))
_tkinter.TclError: CLIPBOARD selection doesn't exist or form "STRING" not defined
我写了这个,以便我可以通过在剪贴板中放置一个启动文本来启动该文件。这有助于阻止错误。尽管它阻止了错误的发生,但代码现在只能以重复的方式打印“Starter Text”。即使将内容复制到剪贴板后,它们也似乎没有被打印出来。
我可以获得一些关于如何避免错误的建议,同时每当我将某些内容复制到剪贴板时都会打印这些值。
答案 0 :(得分:1)
您无法避免错误,因为这是设计行为,但您可以处理错误。
import tkinter as tk
...
try:
selection = r.selection.get(selection="CLIPBOARD")
except tk.TclError:
selection = None
...
答案 1 :(得分:0)
我遇到了以下脚本,它帮助我获得了我的目标。
import time
from tkinter import Tk
while True:
r = Tk()
try:
result = r.selection_get(selection="CLIPBOARD")
print(result)
time.sleep(1)
except:
selection = None
我继续尝试使用除了通用的块除外。 @Bryan Oakley的建议帮了很大忙。